2017-04-24 56 views
1

我目前正在开发我的应用程序,并且正在我的firebase数据库上传许多信息。我的算法会自动写入我的Firebase数据库,有时在写入2000(有时少于更多)之后,我有这个错误。我知道它可能与授权规则相关联,但我不知道 该怎么做。上传到Firebase数据库时发生错误,未经授权的请求

Traceback (most recent call last): 
    File "top1000.py", line 168, in <module> 
    db.child("Artistes")....:""}) 
    File "/usr/local/lib/python2.7/dist-packages/pyrebase/pyrebase.py", line 301, in set 
    raise_detailed_error(request_object) 
    File "/usr/local/lib/python2.7/dist-packages/pyrebase/pyrebase.py", line 448, in raise_detailed_error 
    raise HTTPError(e, request_object.text) 
requests.exceptions.HTTPError: [Errno 401 Client Error: Unauthorized for url: https://silent-fuze-...] { 
    "error" : "Unauthorized request." 
} 

我想以管理员身份写入我的数据库。这是我主算法中的代码。

config = { 
    "apiKey": "...", 
    "authDomain": "...", 
    "databaseURL": "...", 
    "projectId": "...", 
    "storageBucket": "...", 
    "messagingSenderId": "...", 
    "serviceAccount": "clef.json" 
} 

firebase = pyrebase.initialize_app(config) 
db = firebase.database() 

这里是我的firebase规则。

{ 
    "rules": { 
    ".read": "auth == null", 
    ".write": "auth == null" 
    } 
} 

回答

0

您正在使用:

{ 
    "rules": { 
    ".read": "auth == null", 
    ".write": "auth == null" 
    } 
} 

它允许完全的读写访问身份验证的用户您的应用程序的
这意味着如果用户未通过身份验证,他将无法访问数据,这是您错误的原因。
您正在尝试访问而无需身份验证。

您可以使用Firebase Authentication让用户登录到您的应用程序

更多关于安全here信息。

+0

但是,我不通过使用API​​密钥,我的“配置”内的数据库url认证? –

+0

@FlorianBirolleau当客户端尝试读取和写入数据时,您必须验证请求,因为您在规则中要求它。 API KEY不是验证用户身份的关键,但仅用于配置您的项目 –

+0

好吧,但您说我需要配置用户登录到我的应用程序。我的UI开发人员将采取这一点。现在我只需要认证自己,以便写入我的数据库。我必须键入我的代码? –

相关问题