0

「匿名」以外のプロバイダで認証されていない限り、ユーザが書き込みを禁止するルールをデータベースに書き込もうとしています。これは私が持っているルールですが、何らかの理由でFacebookにログインしても電子メール/パスワードでログインしていないと動作しません。パーミッションが拒否されました。 PS電子メール/ pwdユーザーは、アップグレードされたSDKの前に作成されました。これがうまくいかない理由は何ですか?FacebookベースのプロバイダのFirebaseの認証ルールは電子メール/パスワードではありません

"updates": { 
    ".read": "auth !== null", 
    ".write": "auth !== null && auth.provider !== 'anonymous'", 
    "$location_id": { 
     ".indexOn": "validFrom", 
     "$update_id": { 
     ".validate": "newData.hasChildren(['displayName', 'place_id', 'name', 'statusValueId', 'update_id', 'user_id', 'validFrom', 'votes'])" 
     } 
    } 
    }, 

答えて

2

これがなぜ機能していないかを調べる最良の方法は、firebaseコンソールでシミュレータを使用することです。

データベース>ルール>シミュレータ(右上隅)に

enter image description here

  1. それを見つけることができます選択ラジオボタン
  2. に書くトグル「認証」を選択し、プロバイダを選択あなたのユーザーのトークンを "Auth token payload"でテストして書き込みたい
  3. "Location"に参照へのパスを書き込む
  4. "Data(JSON)"のペーストJSONはあなたが
  5. クリックして実行を書きたいオブジェクトとfirebaseは失敗したルールを教えてくれますauth.providerではなく、電子メール/パスワード認証のためのanonymousに等しい
+1

を☃そして、これは完全に質問に答えていない場合は、診断を助けるために、シミュレータからの出力が含まれます。 – Kato

1

私はあなたが私と同じバグをヒットしていると思われます、 password。残念ながら、私はまだFirebaseチームから回答を得ていません。

auth.provider is not set to 'password' when user signs-in with email and password

アップデート:私はFirebaseのGoogleグループのページでは、いくつかの大きな助けを受けました。彼らはバグを確認し、回避策を提供しました。下記のリンクを参照してください:

https://groups.google.com/d/topic/firebase-talk/C-ljg-CCKl0/discussion

+0

私は本当にまったく同じ問題があると信じています – rex

関連する問題