Firebase 实时数据库状态不起作用

问题描述

从文档中,我这样做:

K
string

我在每个页面上都这样做,但它似乎在个人资料页面上不起作用。这是我在数据库中看到的: 1

这不是一次性的。几乎所有用户都有类似的情况。这可能是什么原因?为什么 ondisconnect 不会触发?

如果需要,这里是网页:magicconnects.com/profile。

非常感谢您的帮助!

编辑:添加安全规则:

createSelectOptions<string>([
    { a: "a",b: "b" },{ c: "c",d: "d" },],"k","v") // no error Now ?

解决方法

问题似乎是在 onDisconnect 代码运行时令牌可能已过期。因此,您需要允许未经身份验证删除相关数据。

我能想到的最安全的方法是在单个连接节点(以 -M... 开头的节点)的级别上执行此操作,以便只有知道密钥才能删除节点。

看起来像这样:

{
  "rules": {
    "users": {
      "$uid": {
        ".read": "auth != null",".write": "auth != null && auth.uid == $uid"
        "$pushid": {
          ".write": "!newData.exists()"
        }
      }
    }
  }
}

由于规则是 OR 运算在一起的,因此 ".write": "!newData.exists()" 是当有人知道 $pushid 时的额外津贴。