firebase Firestore引用字段-如果没有引用,它应该不存在吗?

ktca8awb  于 2023-04-22  发布在  其他
关注(0)|答案(1)|浏览(130)

我正在构建一个应用程序,其中用户有一个引用ActivitycurrentActivity字段。
例如:

User
  name: My Name
  currentActivity: activities/g07JPaTfuqSXgRG7tqVs

但是,一旦用户不再执行该活动,我应该从User对象中删除该字段,还是有办法将其设置为NULL?

wn9m85ua

wn9m85ua1#

您可以选择:

  • 完全删除字段,或;
  • 将字段设置为null,或;
  • 将字段设置为另一个值,如空字符串。

最后两种情况比第一种情况有优势:您可以使用not equal(!=)运算符查询它,以返回currentActivity字段存在且不匹配null或不匹配空字符串(换句话说,具有活动的用户)的文档。
您无法使用第一种方法(字段删除)执行相同的查询,因为您无法查询不存在的字段。
请注意,关于查询中的不相等运算符的文档指出“您不能将不相等(!=)运算符与null一起使用,因为x != null的计算结果为undefined”,但实际上usersRef.where('currentActivity', '!=', null).get();可以正常工作:你会得到所有currentActivity字段与null不同的文档。
更多详细信息请参见以下其他Firestore文档部分:

  • Firestore数据类型
  • 删除字段

相关问题