2016-12-02 72 views
4

我正試圖將數據寫入Firebase數據庫,但當我保存的按鈕被按下時,我不斷收到以下錯誤消息。Firebase數據庫setValue:或removeValue失敗:permission_denied iOS

2016年12月2日11:09:42.548 StartupNow [1482:60415] [FirebaseDatabase]的setValue:或removeValue:在/測試/ -ky-VpLZWbp4vjF3BpMk失敗:PERMISSION_DENIED

觀光我試着: 我已經確保我的.read和.write規則在我的控制檯中設置爲true,重新連接了我的savedButtonPressed按鈕,並將Firebase引用寫入函數中,並在我的savedButtonPressed()方法中調用它。

額外資源這裏是我正在遵循的教程。 https://youtu.be/F42CzqIBxHQ?t=4m14s

var ref: FIRDatabaseReference? 

override func viewDidLoad() { 
    super.viewDidLoad() 

    ref = FIRDatabase.database().reference() 

} 

@IBAction func saveButtonPressed() { 
    // TODO: Post data to Firebase 

    firebaseChild() 
    print("********************************") 
    print("********************************") 

} 

func firebaseChild() { 
    ref?.child("Test").childByAutoId().setValue("Hello Firebase") 

} 
+0

有您確保用戶在火力認證,因爲這是在數據庫中設置訪問的初始規則。 –

回答

5

FreddieOh和我聊過時差,問題是,這是在GoogleService-info.plist文件中列出的數據庫沒有與一個他編輯匹配。 (看起來也許在這種情況下,他已經刪除並重新創建了Firebase控制檯中的項目,但未更新plist文件。)

如果您發現自己處於與設置了閱讀並寫入訪問權爲真,並仍然獲得權限拒絕錯誤,請打開您的GoogleService-info.plist文件並查看條目DATABASE_URL。然後轉到項目中的Firebase數據庫,查看數據選項卡的頂部,並確認列出的URL與您的plist文件中的URL相同。

我想另一件事是檢查是否更新數據庫規則以允許全局訪問但忘記單擊發布按鈕。那...可能在某一時刻發生在我身上。 :)

7

我有一個類似的問題。它通過重置數據庫的讀/寫規則來解決。如果您更改了規則,請嘗試將其重置爲默認值。

{ "rules": { ".read": true, ".write": true } }

+1

這是有風險的。你不想讓他們全部在默認 –

+2

我同意。這裏的想法不是保留默認的數據庫規則。這個想法是,通過重新設置它們,您可以確定問題是否與更新後的規則相關。然後你就可以開始糾正這個錯誤了。 – DoesData

3

轉到你的火力地堡控制檯,並執行以下步驟被識別的圖像。

請查閱圖片並按照以下步驟操作。如果你是初學者,並在形象上面臨問題。我做了一些關於錯誤的視頻。

視頻解決方案: https://youtu.be/fZrOkCqQpTc

影像處理 enter image description here