Firebase实时数据库写入规则求助:首次写入与更新逻辑配置
Firebase Realtime Database 写入规则配置方案
直接上修正后的规则代码:
{ "rules": { ".read": true, "Users": { "3X3": { "$userID": { ".write": "!data.exists() || (data.child('time').val() > newData.child('time').val())" } } } } }
规则逻辑说明
!data.exists():匹配用户节点不存在的场景,也就是首次写入,此时直接允许写入,不管提交的time值是什么data.child('time').val() > newData.child('time').val():用户节点已存在时,仅当新提交的time值小于当前存储的time值,才允许覆盖写入
之前添加!data.exists()未生效的原因
大概率是你没把它和原有条件用**逻辑或(||)**组合起来,单独写的话会和原有判断冲突,导致首次写入的规则不生效。现在用||连接两个条件,就能同时满足两种场景的需求。
内容的提问来源于stack exchange,提问作者ypanos
相关产品推荐
相关产品推荐

