對於下面的Firebase規則集。Firebase規則導致奇怪的行爲
"users": {
//".read": "(auth != null) && (auth.uid === newData.child('id').val())",
// A list of users and their associated metadata, which can be updated by the single user or a moderator.
"$userId": {
".write": "(auth != null) && (auth.uid === $userId)",
".read": "(auth != null) && (auth.uid === $userId)",
".validate": "($userId === newData.child('id').val())",
"invites": {
// A list of chat invitations from other users, append-only by anyone.
"$inviteId": {
// Allow the user who created the invitation to read the status of the invitation.
".read": "(auth != null) && (auth.uid === data.child('fromUserId').val())",
".write": "(auth != null) && (!data.exists() || $userId === auth.uid || data.child('fromUserId').val() === auth.uid)",
".validate": "newData.hasChildren(['fromUserId','fromUserName','roomId']) && (newData.child('inviteId').val() === $inviteId)"
}
}
}
}
當我嘗試規則模擬器用戶2456gd,網址/users/2456gd/
- $userId
下驗證步驟成功。但如果嘗試/users/2456gd/invites/abcd2
- $userId
下的驗證步驟失敗。
的數據我用:
{
"id":"2456gd",
"fromUserId":"2456gd",
"fromUserName":"abc",
"roomId":"family",
"inviteId":"abcd2"
}
任何可能的解釋?以及如何處理它。
謝謝。
「讀」或「寫」或「兩個」都失敗了? –
讀取成功與第一個網址:/用戶/ 2456gd /,但在第二次也失敗。 – user2536851
解析確切的失敗有點困難。你能分享你的模擬器的截圖與JSON,你正在閱讀的路徑,錯誤消息和身份驗證令牌? –