firebase - Firestore 参考字段 - 如果没有参考,它应该不存在吗?
问题描述
我正在构建一个应用程序,其中用户有一个currentActivity
引用Activity
.
前任:
User
name: My Name
currentActivity: activities/g07JPaTfuqSXgRG7tqVs
但是,一旦用户不再执行该活动,我应该从 User 对象中删除该字段,还是有办法将其设置为 NULL?
解决方案
您可以选择:
- 完全删除该字段,或者;
- 将该字段设置为
null
,或; - 将该字段设置为另一个值,例如空字符串。
最后两种情况比第一种情况有优势:您可以使用不等于 ( !=
) 运算符查询它,以返回currentActivity
字段存在且不匹配 null 或不匹配空字符串的文档(换句话说活动)。
您无法使用第一种方法(字段删除)执行相同的查询,因为您无法查询不存在的字段。
请注意,查询中关于不等于运算符的文档表明“您不能使用不等于 ( !=
) 运算符,null
因为x != null
计算结果为undefined
”,但实际上usersRef.where('currentActivity', '!=', null).get();
确实可以正常工作:您获得的所有文档的 currentActivity 字段都与null
.
以下其他 Firestore 文档部分中的更多详细信息:
推荐阅读
- javascript - UnhandledPromiseRejectionWarning:DiscordAPIError:无法发送空消息
- python - 创建主要因素列表的问题(编辑:标题应该说“因素列表”,而不是“主要因素列表”)
- ios - 如何修复 Shell 脚本调用错误 MapFileParser.sh:Xcode 中的权限被拒绝
- excel - 通过 VB 打开一个 excel 文件 - 无法加载文件或程序集
- python - 对于包含多个字符串的大型 .CSV 列是否有任何时间拆分功能?
- swiftui - 如何在 SwiftUI 中通过 ViewBuilder 访问 TupleView?
- python - instancemethod'对象没有属性'return_value'
- windows - 什么是“ms-cxh-full://0.0.135.7”?
- javascript - 样式化 HTML5 日期
- android - 对通过 startActivity 创建的 AppCompatActivity 对象的引用