【发布时间】:2019-07-31 10:06:35
【问题描述】:
我只想更新文档中的一些字段,所以我在文档here 中找到了hasOnly 函数
但它不起作用,例如,下面的规则不起作用
function isValid(data){
return data.keys().hasOnly(['name','email','password'])
}
当我在客户端 SDK 中更新时
firestore.document("users/user_doc")
.update(mapOf(
"name" to "Jack",
"email" to "jack@gmail.com",
"password" to "12345"
)).addOnCompleteListener {
if (it.isSuccessful){
Log.d("app", "success")
}else{
Log.d("app", "failed")
}
}
但它显示一个缺少权限的错误
还有hasAll 函数总是返回true!
那么这个功能存在吗?为什么它不工作?
谢谢。
【问题讨论】:
-
请记住,
request.resource包含写入操作成功时将显示的文档,因此它也包含现有字段,而不仅仅是您正在更新的字段。您的文档是否有比name、email和password更多的字段? -
yes 包含其他字段,但我不想更新它。我的问题是我只想更新文档中的某些字段。我可以通过使用 writeFields 来做到这一点,但这已在功能中被删除。您能指导我如何更新某些字段以及最好的方法吗? @FrankvanPuffelen
标签: firebase google-cloud-firestore firebase-security