首次使用Firebase處理新項目,並在包含驗證規則時寫入活動事件時收到權限被拒絕消息。Firebase數據驗證失敗
驗證規則如下:
"activity": {
".read": "auth != null",
".write": "auth != null",
".validate": "newData.hasChildren(['user'])",
".indexOn": ["when"]
}
在一個新的活動事件,我推新的項目,搶令牌ID,並使其(現在)的推數據部分。當在調試中看到這個(使用自定義令牌認證系統)時,這就是我所看到的。被推送的json有一個「user」條目,它是auth用戶的GUID,所以我不確定它爲什麼失敗。我分開了json文本。
utility.js (line 1675)
FIREBASE: Attempt to write {
"id":"-K4oomuOpaY4K2aGUYZA",
"imp":false,
"text":"xxx.",
**"user":"0648480c-xxx"**,
"when":1449363973059
} to /activity/## with auth={"uid":"0648480c-xxx","name":"Greg Merideth"}
/activity:.write: "auth != null" => true
/activity:.validate: "newData.hasChildren(['user'])" => false
FIREBASE: Validation failed. firebase.js (line 195)
FIREBASE: Write was denied firebase.js (line 195)
我甚至試圖將規則更改爲「.validate」:「newData.hasChild('user')」具有相同的最終結果。
是新數據看入站數據包還是我的「auth」數據包?
更新(從註釋)
增加一個新項目的調用一個函數傳入fbActivity處理程序,然後調用:
var message = fbActivity.push({
id: user.fn(),
text: t.val(),
imp: false,
user: user.uid(),
when: new Date().getTime()}
推新條目。我們沒有使用fb.timestamp,因爲我們的服務器在fb之後運行3秒,所以我們的時間戳出奇怪的。
交叉帖子:https://groups.google.com/forum/#!topic/firebase-talk/a53ya-tVf80 –
我在下面添加了最可能的答案。如果不是這樣,請添加您用於寫入數據的代碼。沒有這一點,就不可能確定什麼是錯的。 –
添加一個新項目調用傳入fbActivity處理函數的函數,然後調用: var message = fbActivity.push({id:user.fn(),text:t.val(),imp:false,user :user.uid(),when:new Date()。getTime()} 要推新條目,我們沒有使用fb.timestamp,因爲我們的服務器在fb之後運行3秒,所以我們的時間戳出奇怪的 –