匿名のサインインまたはログされたアカウントを使用してデータを格納するAndroidアプリケーションがあります。Firebaseデータベースをリンクする際のデータベースの規則
問題は、匿名ユーザーとして作成されたデータをログに記録されたアカウントに変換する場合です。私は匿名と成功のアカウントに署名した両方のリンクが、私はそれが原因でアクセスルールであると思われるが、私はそれが両方のアカウントを受け入れる必要があることをFirebaseを伝えるために、それらを指定する方法が分からない
SyncTree: Listen at /currentSession/xxx-AnonymousLoginUserId-xx failed: DatabaseError: This client does not have permission to perform this operation
を取得しています。私は|| auth.provider='anonymous'
が間違っていることを確信しているが、私は診断であなたを助けるために共有しています問題について考えていたときに
ルールは今
{
"rules": {
"currentSession": {
"$uid": {
".write": "$uid === auth.uid || auth.provider === 'anonymous'",
".read": "$uid === auth.uid || auth.provider === 'anonymous'"
}
...
},
のように見えます。ところで
:auth.provider =「匿名」が構文エラーはおそらくではありません。すべてはルールが
{
"rules": {
"currentSession": {
"$uid": {
".write": true,
".read": true
}
...
},
ですが、私は
EDIT 1弱いのでルールに満足していない場合に適しています原因(私はそれをコピーしなかった、私はちょうど私の記憶からそれをタイプした)。
EDIT 2:ご注意くださいcurrentSession : { "$uid" : {
...おそらく問題はauth.uid
が1つの変数であることに気づきましたが、リンクされたアカウントの場合はおそらくuidのセットになるはずです。何か案が?
編集に関しては、アカウントをどのようにリンクしているのか、この特定のケースで何をしているのかについて、より詳細な情報を提供する必要があります。 –