Firebase Firestore,使用函数参数或变量更新文档中的字段
我创建下面的函数来更新集合中的名称。 该函数将uid和新名称作为参数。 我得到的行为是,一旦调用,数据库中firstName的值将被一个对象替换,该对象的键值对为Firebase Firestore,使用函数参数或变量更新文档中的字段,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,我创建下面的函数来更新集合中的名称。 该函数将uid和新名称作为参数。 我得到的行为是,一旦调用,数据库中firstName的值将被一个对象替换,该对象的键值对为firstName,值为newFirstName。 i、 efirstName:{firstName:newFirstName}。我还在下面添加了一个屏幕截图来说明我的意思 我肯定我哪里弄错了 谢谢你的帮助 export async function dbUpdateFirstName(uid, newFirstName){
firstName
,值为newFirstName
。
i、 efirstName:{firstName:newFirstName}
。我还在下面添加了一个屏幕截图来说明我的意思
我肯定我哪里弄错了
谢谢你的帮助
export async function dbUpdateFirstName(uid, newFirstName){
try{
usersRef.doc(uid).update({
"firstName" : newFirstName
})
}
catch(err){
console.log(err)
return err
}
}
从屏幕截图中,我可以看到
newFirstName
是一个对象而不是字符串,这就是导致您出现问题的原因
您可以通过在更新文档之前打印newFirstName
来验证此行为
console.log(newFirstname)代码>
如果这不能说明问题,您还可以使用以下选项打印newFirstName
的类型:
console.log(typeof(newFirstName))
尝试在用户ref.doc(uid)
之前添加等待
。谢谢您的回答。它等待着,它不会改变任何事情。newFirstName是字符串。什么类型的值是newFirstName
?从屏幕截图来看,newFirstName
似乎是一个包含属性firstName的对象。你能用console.log(typeof(newFirstName))打印它吗代码>保存到firestore并在此处共享结果之前?当您硬键入如下值时:等待docRef.update({“firstName”:“Test name”})
。你看到同样的结果了吗?还请包括如何创建usersRef
变量。非常感谢您的指导。我找到了解决办法。我传递的不是字符串,而是来自submit方法上的react hook表单的对象,而不是返回对象的属性firstName。