Javascript 在云函数中写入Firestore时如何使用SetOptions.merge with.set()

Javascript 在云函数中写入Firestore时如何使用SetOptions.merge with.set(),javascript,firebase,google-cloud-platform,google-cloud-firestore,google-cloud-functions,Javascript,Firebase,Google Cloud Platform,Google Cloud Firestore,Google Cloud Functions,我有一个云函数,在注册新用户时创建Firestore条目 exports.newUser = functions.auth.user().onCreate((user) => { var userObject = { displayName : user.displayName, picUrl:user.photoURL, authType:user.providerData, email : user.email, newUser:

我有一个云函数,在注册新用户时创建Firestore条目

exports.newUser = functions.auth.user().onCreate((user) => {

  var userObject = {
     displayName : user.displayName,
     picUrl:user.photoURL,
     authType:user.providerData,
     email : user.email,
     newUser: true,
     bookings:0
  };

  console.log("Merge:true")
  return admin.firestore().doc('users/'+user.uid).set(userObject, SetOptions.merge())
  .then((response)=>{
    console.log("New user result: ",response)
    return response;
  }).catch((err)=>
  {
    console.log("New user Error: "+err)
    return err;
  });
});
我想使用setoptions.merge(),但它不起作用,我想更新,因为我还在firestore上为FCM消息写入设备令牌

NewUser ReferenceError:未在上定义SetOptions exports.newUser.functions.auth.user.onCreate(/srv/index.js:26:67)位于 云函数 (/srv/node_modules/firebase functions/lib/cloud functions.js:131:23) at/worker/worker.js:825:24 at at at

我参考了谷歌云文档,他们说将其作为{merge:true}传递,但这也没有帮助。 我在stackoverflow上引用了这篇文章 但这也不起作用。
请帮助我,因为我对firestore云函数了解不多

问题在于user.providerData返回json对象,其中包含导致编码错误的函数。至于合并选项,它是
.set(data,{merge:true})

您现在所做的将不起作用。文档非常清楚,您应该通过
{merge:true}
。问题出在user.providerData上,它以json对象的形式返回,函数导致了编码错误。至于合并选项,它是.set(data,{merge:true}),如果您说不再存在问题,请删除该问题或简单地回答您自己的问题。您能确认您已解决该问题吗?是@EnriqueDelValle我的问题已解决。