[英]Firestore/Firebase permissions denied using onDisconnect()
在這個 Javascript 中,除了presenceRef.onDisconnect().set('no more');
之外,一切正常。 語句,生成PERMISSION_DENIED: Permission denied in my console。
firebase.auth().onAuthStateChanged(function(user){
if (user){
uid=user.uid;
db.collection('user').doc(uid).set({
custnum: parseInt(custnum),
email: email,
password: password,
screenname: screenname,
admin: parseInt(admin),
uid: uid
})
.then(function(){
var docpath='/user/'+uid+'/email';
var presenceRef=firebase.database().ref(docpath);
presenceRef.onDisconnect().set('no more');
})
.catch(function(error){
console.log('Error writing document: ' + error);
});
} else {
db.collection('user').doc(uid).delete({
})
.then(function(){
//success
})
.catch(function(error){
console.log('Error writing document: ' + error);
});
uid='';
}
});
當我連接到這個 URL 時,在“規則”選項卡中:
https://console.firebase.google.com/project/[項目名稱]/database/firestore/rules
...我已經全部打開了,如下:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
我可以使用.set寫入數據庫。 為什么我不能使用onDisconnect()來設置不同的值? .db指的是firebase.firestore()連接。 Firebase 和 Firestore 之間發生了什么我不明白的事情嗎?
onDisconnect()
是實時數據庫而非 Firestore 的方法,它允許您在客戶端與數據庫服務器斷開連接時寫入或清除數據。
因此,如果您打算 使用它,請將實時數據庫的規則更改為以下內容:
{
"rules": {
".read": true,
".write": true
}
}
僅在開發中使用這些規則。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.