创建/更新/删除Firebase实时数据库规则

创建/更新/删除Firebase实时数据库规则,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,我已经创建了一个创建/更新/删除用户聊天信息的工作方法。我想知道是否有办法简化我的逻辑 ".write": "(!data.exists() && newData.child('uid').val() == auth.uid) || (data.child('uid').val() == auth.uid && newData.child('uid').val() == auth.uid) || (data.child('uid').val() == auth.u

我已经创建了一个创建/更新/删除用户聊天信息的工作方法。我想知道是否有办法简化我的逻辑

".write": "(!data.exists() && newData.child('uid').val() == auth.uid) || (data.child('uid').val() == auth.uid && newData.child('uid').val() == auth.uid) || (data.child('uid').val() == auth.uid && !newData.exists())"
多行可读性

(!data.exists() && newData.child('uid').val() == auth.uid) ||
(data.child('uid').val() == auth.uid && newData.child('uid').val() == auth.uid) ||
(data.child('uid').val() == auth.uid && !newData.exists())
看看博尔特

您可以简化查询,然后编译输出

path /somePath {
  path /{uid} {
    read() { isUser(uid) }
    write() { isUser(uid) }
  }
}

function isUser(uid) {
  return auth != null && auth.uid == uid;
}
它真的很方便——尽管仍处于测试阶段,但它使规则更容易阅读和理解