2016-12-02 9 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

あなたはそれがアクセスするデータベースに設定された初期のルールであるため、ユーザーがfirebaseで認証されていることを確認しています。 –

答えて

5

FreddieOhと私はスラック上でおしゃべりして、問題がGoogleService-info.plistファイルにリストされたデータベースは、彼が編集したものと一致しなかったことでした。 (この場合、Firebaseコンソールでプロジェクトを削除して再作成したが、plistファイルを更新していない可能性があります)

あなたが読んでいるのと同じ状況trueへの書き込みアクセス権を持っており、引き続き許可の拒否エラーが発生している場合は、GoogleService-info.plistファイルを開き、DATABASE_URLのエントリを参照してください。次に、プロジェクトのFirebaseデータベースに移動し、データタブの上部を見て、そこにリストされているURLがplistファイルのURLと同じであることを確認します。

もう1つは、グローバルアクセスを許可するデータベースルールを更新しましたが、[公開]ボタンをクリックするのを忘れた場合です。それは...ある時点で私に起こったかもしれません。 :)

7

私は同様の問題がありました。これは、データベースの読み取り/書き込みルールをリセットすることで解決されました。ルールを変更した場合は、それらをデフォルトにリセットしてみてください。あなたのFirebaseコンソールへ

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

+1

は危険です。あなたはデフォルトでそれらをすべて持っていたくない –

+2

私は同意します。ここでのアイデアは、デフォルトのデータベースルールを残すことではありません。アイデアは、それらをリセットすることによって、問題が更新されたルールにあるかどうかを判断できるということです。次に、間違いが必要であることを修正することができます。 – DoesData

3

移動し、画像で識別され、次の手順を実行します。

画像を参照して次の手順を実行してください。あなたが初心者でイメージに直面している場合。私はエラーに関するビデオをほとんど作りません。

ビデオソリューション: https://youtu.be/fZrOkCqQpTc

画像ソリューション enter image description here

関連する問題