2016-04-03 3 views
5

Я пытаюсь получить данные о firebase из python (2.7).Аутентификация пользователей Firebase в python

Вот мои правила (на firebseio.com):

{ 
    "rules": { 
     "user": { 
      "$uid": { 
      ".read": "auth != null && auth.uid == $uid", 
      ".write": "auth != null && auth.uid == $uid" 
      } 
     } 
    } 
} 

Вот скриншот моего Databse:

enter image description here

И наконец, мой питон код:

from firebase import firebase 
from firebase.firebase import FirebaseApplication, FirebaseAuthentication 

DSN = 'https://<my name>.localhost' 
EMAIL = '[email protected]' 
authentication = FirebaseAuthentication(EMAIL, True, True, extra={'id': '<the user id>'}) 
firebase = FirebaseApplication(DSN, authentication) 
firebase.authentication = authentication 
print authentication.extra 

user = authentication.get_user() 
print user.firebase_auth_token 

Теперь я не могу понять, как получить данные и отправить данные в и из базы огня. I судимого использованияКонтактной строку: result = firebase.get('/users', None, {'print': 'pretty'}), но это дает мне эту ошибку:

ConnectionError: HTTPSConnectionPool(host='<my name>.localhost', port=443): Max retries exceeded with url: /users/.json?print=pretty&auth=<the token code of the user> (Caused by NewConnectionError('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x02A913B0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed',)) 

Может кто-нибудь дать мне рабочий код?

Спасибо заранее,

Цви Карп

+0

Что делать, если я не использую DSN? – marciokoko

ответ

6

Вот шаги, которые мы приняли, чтобы получить аутентификации работу.

(1) Сначала вам нужен секрет Firebase. После того, как у вас есть проект в Firebase, нажмите «Настройки». Затем нажмите «База данных» и выберите «Создать секрет». settings

Скопируйте ваш секрет. Он войдет в ваш код позже.

secret

(2) Тебе нужен firebase URL. Он будет иметь следующий формат: https: //.firebaseio.com Скопируйте это тоже.

(3) Получить API REST Firebase для Python. Мы использовали эти один: https://github.com/benletchford/python-firebase-gae Перейдите к выше вашему Lib папки и запустите эту команду, которая будет поместить firebase кода в Lib каталог:

git clone http://github.com/benletchford/python-firebase-gae lib/firebase 

(4) В файле «main.py» (или что-то вы используете) добавить этот код:

from google.appengine.ext import vendor 
vendor.add('lib') 

from firebase.wrapper import Firebase 

FIREBASE_SECRET = 'YOUR SECRET FROM PREVIOUS STEPS' 
FIREBASE_URL = 'https://[…].firebaseio.com/' 

(5) добавить этот код MainHandler (если вы используете AppEngine):

class MainHandler(webapp2.RequestHandler): 
    def get(self): 
     fb = Firebase(FIREBASE_URL + 'users.json', FIREBASE_SECRET) 

     new_user_key = fb.post({ 
      "job_title": "web developer", 
      "name": "john smith", 
     }) 
     self.response.write(new_user_key) 
     self.response.write('<br />') 

     new_user_key = fb.post({ 
      "job_title": "wizard", 
      "name": "harry potter", 
     }) 
     self.response.write(new_user_key) 
     self.response.write('<br />') 

     fb = Firebase(FIREBASE_URL + 'users/%s.json' % (new_user_key['name'],), FIREBASE_SECRET) 
     fb.patch({ 
      "job_title": "super wizard", 
      "foo": "bar", 
     }) 

     fb = Firebase(FIREBASE_URL + 'users.json', FIREBASE_SECRET) 
     self.response.write(fb.get()) 
     self.response.write('<br />') 

Теперь, когда вы переходите к своей базе данных Firebase Realtime, вы должны видеть записи для Гарри Поттера как пользователя и других.

Смежные вопросы