javascript - 使用 onDisconnect() 拒绝 Firestore/Firebase 权限

标签 javascript firebase google-cloud-firestore

在此 Javascript 中,除了 presenceRef.onDisconnect().set('no more'); 语句之外,一切正常,该语句会在我的文件中生成 PERMISSION_DENIED: Permission returned控制台。

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/[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 的一种方法,它允许您在客户端与数据库服务器断开连接时写入或清除数据。

因此,如果您打算 use it ,然后将实时数据库的规则更改为以下内容:

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

仅在开发中使用这些规则。

关于javascript - 使用 onDisconnect() 拒绝 Firestore/Firebase 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61206728/

相关文章:

python - Populate() 不是可重入的 Django Google App Engine

javascript - D3 中 jQuery 的 $ (".cell:first") 是什么?

javascript - 将我的网站转换为使用 Angular JS

firebase - 如何在Flutter中显示来自Firestore数据的文本?

javascript - firestore 中的值显示为未定义

firebase - Firestore 按两个字段排序

javascript - 有没有一种方法可以确定 firebase 数据库中的所有集合是否为空?

javascript - 没有收到来自 Facebook OAuth API 的电子邮件,带有 MEAN Stack 的 Passport

javascript - 无论如何,在使用 Internet Explorer 时,是否可以防止触发 onbeforeunload 事件

javascript - 在给定用户电子邮件或其他任意字段的 Firebase 实时数据库中查找表