私は 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();
}