Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase Firestore,使用函数参数或变量更新文档中的字段_Firebase_Google Cloud Firestore - Fatal编程技术网

Firebase Firestore,使用函数参数或变量更新文档中的字段

Firebase Firestore,使用函数参数或变量更新文档中的字段,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,我创建下面的函数来更新集合中的名称。 该函数将uid和新名称作为参数。 我得到的行为是,一旦调用,数据库中firstName的值将被一个对象替换,该对象的键值对为firstName,值为newFirstName。 i、 efirstName:{firstName:newFirstName}。我还在下面添加了一个屏幕截图来说明我的意思 我肯定我哪里弄错了 谢谢你的帮助 export async function dbUpdateFirstName(uid, newFirstName){

我创建下面的函数来更新集合中的名称。 该函数将uid和新名称作为参数。 我得到的行为是,一旦调用,数据库中firstName的值将被一个对象替换,该对象的键值对为
firstName
,值为
newFirstName
。 i、 e
firstName:{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。