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

时间:2018-08-24 20:45:18

标签: 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.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())

1 个答案:

答案 0 :(得分:1)

看看bolthttps://github.com/firebase/bolt

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

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

function isUser(uid) {
  return auth != null && auth.uid == uid;
}

这真的很方便-尽管仍处于测试阶段,但使规则更易于阅读和理解。