将自定义变量/数据添加到AngularFirestoreDocument

海军

我有这样的代码来登录用户并将其保存到Firebase数据库

async EmailRegister(email: any, password: any, displayName: any) {
  return this.afAuth.auth.createUserWithEmailAndPassword(email, password)
    .then((result) => {
      result.user.updateProfile({
        displayName: displayName,
        photoURL: ''
      }).then(() => {
        this.updateUserData(result.user);
        // this.SendVerificationMail();
        this.router.navigateByUrl('/pages/projects/all-project');
        window.alert("You have been successfully registered!");
        console.log(result.user)
      });
    }).catch((error) => {
      window.alert(error.message)
    })
}

private updateUserData(user) {
  // Sets user data to firestore on login
  const userRef: AngularFirestoreDocument<User> = this.afs.doc(`users/${user.uid}`);
  const data = {
    uid: user.uid,
    email: user.email,
    displayName: user.displayName,
    photoURL: user.photoURL,
    emailVerified: user.emailVerified,
    kewirusType: user.kewirusType
  }
  return userRef.set(data, { merge: true })
}

我想像kewirusType用户注册时一样传递新数据,该怎么做?

贝尼亚明

要解决您的问题,请尝试将kewirusTypefrom表单传递给updateUserData,例如:

  1. 将kewirus传递给此方法:
async EmailRegister(email: any, password: any, displayName: any, kewirusType: string) {
return this.afAuth.auth.createUserWithEmailAndPassword(email, password)
    .then((result) => {
    result.user.updateProfile({
        displayName: displayName,
        photoURL: ''
      }).then(() => {
        this.updateUserData(result.user, kewirusType);
        // this.SendVerificationMail();
        this.router.navigateByUrl('/pages/projects/all-project');
        window.alert("You have been successfully registered!");
        console.log(result.user)
      });
    }).catch((error) => {
    window.alert(error.message)
    })
}
  1. updateUserData
private updateUserData(user, kewirusType: string) {
// Sets user data to firestore on login
  const userRef: AngularFirestoreDocument<User> = this.afs.doc(`users/${user.uid}`);
  const data = {
uid: user.uid,
    email: user.email,
    displayName: user.displayName,
    photoURL: user.photoURL,
    emailVerified: user.emailVerified,
    kewirusType //notice change here
  }
  return userRef.set(data, { merge: true })
}

额外:

可以考虑使用Firebase函数来创建user/{uuid}文档,而不是在您的应用程序中创建此数据,例如:


export const initUserData = functions.auth.user().onCreate((user) => {
  const collectionDoc = admin.firestore().collection(`users`);

  return collectionDoc.doc(user.uid).set({
    uid: user.uid,
    email: user.email,
    kewirusType: "value"
    //... your data here
  }).then(() => {
    console.log(`Data for user ${user.uid} initialized`);
  });

});

然后,在您的应用中,您只需订阅/user/{uuid}文档即可获取用户数据。在应用程序外部委派此类过程更好,更安全。

Firebase功能可以访问每个firebase服务(身份验证,文档,存储等),因此基本上您可以使用它做很多事情。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将自定义元数据添加到pdf

来自分类Dev

如何将自定义地图和自定义数据添加到Highmaps?

来自分类Dev

将自定义变量添加到jquery数据表并读取搜索过滤器

来自分类Dev

如何将自定义xml添加到Oracle XML Publisher数据定义

来自分类Dev

Twitter提前将自定义数据添加到数据集

来自分类Dev

使用 EPPlus 将自定义数据字段添加到 Excel 数据透视表

来自分类Dev

将自定义内容添加到wordpress帖子中,但未显示$ title之类的变量

来自分类Dev

如何将自定义变量添加到jQuery可排序的?

来自分类Dev

将自定义环境变量添加到 UBoot 并从 Kernal 模块访问它

来自分类Dev

将自定义环境变量添加到 AWS EMR 的标准做法是什么?

来自分类Dev

将自定义主题变量对象添加到 createMuiTheme()

来自分类Dev

将自定义标头添加到“请求”

来自分类Dev

Hibernate将自定义前缀添加到目录

来自分类Dev

将自定义函数添加到类

来自分类Dev

将自定义类添加到引导按钮

来自分类Dev

将自定义键绑定添加到XCode

来自分类Dev

无法将自定义字体添加到Xcode

来自分类Dev

将自定义属性添加到Serilog

来自分类Dev

pyqt:将自定义列添加到QFileSystemModel

来自分类Dev

将自定义视图添加到警报视图

来自分类Dev

将自定义别名添加到.zshrc

来自分类Dev

将自定义标签添加到TIFF文件

来自分类Dev

将自定义代码段添加到emmet

来自分类Dev

将自定义Gradle插件添加到项目

来自分类Dev

将自定义数字添加到ggplot图例

来自分类Dev

将自定义属性添加到SimpleSAMLPhp

来自分类Dev

将自定义字段添加到Django admin

来自分类Dev

将自定义消息添加到TestNG失败

来自分类Dev

将自定义字体添加到GUI SWT

Related 相关文章

热门标签

归档