我正在构建一个应用程序,其中用户有一个引用Activity的currentActivity字段。例如:
Activity
currentActivity
User name: My Name currentActivity: activities/g07JPaTfuqSXgRG7tqVs
但是,一旦用户不再执行该活动,我应该从User对象中删除该字段,还是有办法将其设置为NULL?
wn9m85ua1#
您可以选择:
null
最后两种情况比第一种情况有优势:您可以使用not equal(!=)运算符查询它,以返回currentActivity字段存在且不匹配null或不匹配空字符串(换句话说,具有活动的用户)的文档。您无法使用第一种方法(字段删除)执行相同的查询,因为您无法查询不存在的字段。请注意,关于查询中的不相等运算符的文档指出“您不能将不相等(!=)运算符与null一起使用,因为x != null的计算结果为undefined”,但实际上usersRef.where('currentActivity', '!=', null).get();可以正常工作:你会得到所有currentActivity字段与null不同的文档。更多详细信息请参见以下其他Firestore文档部分:
!=
x != null
undefined
usersRef.where('currentActivity', '!=', null).get();
1条答案
按热度按时间wn9m85ua1#
您可以选择:
null
,或;最后两种情况比第一种情况有优势:您可以使用not equal(
!=
)运算符查询它,以返回currentActivity
字段存在且不匹配null或不匹配空字符串(换句话说,具有活动的用户)的文档。您无法使用第一种方法(字段删除)执行相同的查询,因为您无法查询不存在的字段。
请注意,关于查询中的不相等运算符的文档指出“您不能将不相等(
!=
)运算符与null
一起使用,因为x != null
的计算结果为undefined
”,但实际上usersRef.where('currentActivity', '!=', null).get();
可以正常工作:你会得到所有currentActivity字段与null
不同的文档。更多详细信息请参见以下其他Firestore文档部分: