2017-04-24 52 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開發人員將採取這一點。現在我只需要認證自己,以便寫入我的數據庫。我必須鍵入我的代碼? –

相關問題