我在Firebase中有以下数据:
- 设备
- 的iphone5
- date_created:“1456183905”
我正在尝试确定“ date_created ”是否存在,如果没有,则创建它。
我阅读了有关快照的内容,但有没有更简单的方法来检查Firebase以查看此数据是否存在?我现在拥有的是使用快照,但它与事件处理程序相关联。我不能只是做一个基本的查询来查看这个条目是否存在?
感谢。
答案 0 :(得分:2)
您可以通过以下方式测试Swift代码中是否存在值:
"date_created": {
".write": "!data.exists() || data.val() == newData.val()"
但由于这只是客户端,因此有可能两个客户端几乎在准确的时间运行代码,并且最终都会写入时间戳。在上面的代码段中,这不会是一个问题,但在实际使用情况下,这种竞争条件可能是不受欢迎的。
正如安德烈评论的那样,您可以在安全规则中对此进行验证:
date_created
这验证这是您第一次写gulp -v
(因此数据尚不存在)或者其他值不变。