上下文
我试图侦听在客户端创建帐户时没有设置隐私字段的新客户端帐户(客户端的默认隐私设置将在下一次更新中出现)。
主要问题
打印到Firebase控制台的非现有文档字段是undefined,我可以将变量与非现有字段进行比较,比如这个privacy===null
此外,请让我知道是否有更好的方式来构造这种类型的功能。
export const listenForPrivacyNullAccounts = functions.firestore
.document('users/{userId}')
.onCreate(async (snapshot, context) => {
const { uid } = context.params
const data = snapshot.data()
const privacy = data.isPrivate
if(privacy===null){
const userRef = db.collection('users').doc(uid)
const res = await userRef.set({
isPrivate: false
}, { merge: true })
return res
} else {
return null
}
})发布于 2021-01-09 02:13:43
如果在查询的文档中没有添加/显示字段,您将得到undefined;在这种情况下,您可以通过检查值为undefined来进行更新。
但是,如果在创建文档时有意为该字段传递null,则应遵循当前的片段。它只检查值是否为空。
在类型记录中,简单的检查应该使用零煤层气运算符来定义。
const privacy = data.isPrivate ?? false这里,只有当privacy字段为null或未定义时,data.isPrivate才是false
https://stackoverflow.com/questions/65638473
复制相似问题