我已经创建了一种用于创建/更新/删除用户聊天消息的工作方法。我想知道是否有一种方法可以减少我的逻辑。
".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())
答案 0 :(得分:1)
看看bolt
。 https://github.com/firebase/bolt
您可以简化查询,然后编译输出。
path /somePath {
path /{uid} {
read() { isUser(uid) }
write() { isUser(uid) }
}
}
function isUser(uid) {
return auth != null && auth.uid == uid;
}
这真的很方便-尽管仍处于测试阶段,但使规则更易于阅读和理解。