2

私は Firebase を初めて使用し、セキュリティ ルールに本当に苦労しています。

そのユーザーのみがアクセスできる匿名ユーザー セッションのデータを保存しようとしていますが、セキュリティ ルールを強化するとすぐにアクセス許可が拒否され、その理由がわかりません。

私が持っている構造は次のとおりです。

/userSessions/$user/user_id

アプリケーションはユーザー セッションにプッシュし、匿名ログインによって返された user_id を書き込みます。

次のセキュリティ ルールがあります。

{
  "rules": {
    ".read": true,
    "userSessions": {
      "$user": {
        ".write": "newData.child('user_id').val() == auth.id",
        "user_id": {
          ".validate": "newData.isString()"
        }
      }
    }
  }
}

私はばかげたことをしていると確信していますが、セキュリティシミュレーターの使用方法もうまくいかないので、これをトラブルシューティングする方法がわかりません

どんな助けでも大歓迎です

編集 - 匿名で認証した後、userSessions の下に新しいエントリを作成しようとすると問題が発生します。

コード:

var userSessionsRef = new Firebase('https://xxxxxx.firebaseio.com/userSessions');
var userSession;
var auth = new FirebaseSimpleLogin( userSessionsRef, function(error,user) {
    if (error) {
        console.log(error);
    } else if (user) {
        userSessionsRef.child(user.id).set({
            user_id: user.id,
            provider: user.provider,
            created: Firebase.ServerValue.TIMESTAMP
            });
    userSession = new Firebase('https://xxxxx.firebaseio.com/userSessions/'+user.id);
    userSession.onDisconnect().remove();
}
4

1 に答える 1