Javascript 将用户对象保存到Firebase实时数据库时出现问题

Javascript 将用户对象保存到Firebase实时数据库时出现问题,javascript,firebase,firebase-realtime-database,firebase-authentication,Javascript,Firebase,Firebase Realtime Database,Firebase Authentication,Im使用firebase身份验证函数,该函数返回用户对象,如下所示: auth() .createUserWithEmailAndPassword(email, password) .then(user => { 然后,我尝试将此用户对象保存到Firebase数据库,如下所示 database() .ref('profiles/users/' + user.user.uid) .set({ myUserObj: user

Im使用firebase身份验证函数,该函数返回用户对象,如下所示:

auth()
    .createUserWithEmailAndPassword(email, password)
    .then(user => {
然后,我尝试将此用户对象保存到Firebase数据库,如下所示

database()
        .ref('profiles/users/' + user.user.uid)
        .set({
          myUserObj: user,
        })
但是,firebase数据库返回错误
“无法读取下面未定义的“
完整代码”的属性“code”

auth()
    .createUserWithEmailAndPassword(email, password)
    .then(user => {
      console.log(user.user);
      database()
        .ref('profiles/users/' + user.user.uid)
        .set({
          myUserObj: user,
        })
        .catch(err =>
          console.log(err.message),
        );
    })

Firebase实时数据库只能存储有效的JSON对象。包含许多方法,这使得它不是有效的JSON对象

您可以尝试使用以下方法保存它:

  database()
    .ref('profiles/users/' + user.user.uid)
    .set({
      myUserObj: JSON.parse(JSON.stringify(user)),
    })

如果这不起作用,则必须显式命名要保存的属性。

如何判断错误来自此处显示的代码?数据库中有一条catch语句。set method您是否可以编辑问题以显示说明错误的完整代码,从你的角度清楚地了解它是如何执行的?如果你还没有读过,请读这个:嘿,詹姆斯。你试过这个吗?它起作用了吗?如果没有,那么这次更改后会出现什么问题?它实际上是我要存储的用户对象的函数之一。应用程序要求用户验证电子邮件以解锁功能。如果他们尝试使用功能,但尚未验证电子邮件…..我将使用user.sendmailverification()函数。但是,如果我想在用户访问该部分时使用该功能,我需要以某种方式保持该功能。也许对我来说,有一种比Firebase更好的方法来持久化user.sendEmailVerification()函数。另外,您的解决方案确实允许存储嵌套在UserCredential父对象中的常规对象……但是这些函数(我需要)是lostAs说的:Firebase实时数据库只能存储JSON对象,这意味着它不能存储函数。我的回答中的方法将保留他们的电子邮件验证状态,但不会保留其功能。除此之外,尽管我不确定您试图实现什么,但这听起来像是一个错误。存储用户对象的目的是什么?一旦从数据库中重新加载数据,您打算如何处理它?例如,如果要在重新加载网页时还原用户对象,可以使用此处显示的第一个代码段中的方法: