新建 Firebase 期间的 UpdateProfile()

Posted

技术标签:

【中文标题】新建 Firebase 期间的 UpdateProfile()【英文标题】:UpdateProfile() during singup Firebase 【发布时间】:2017-08-13 06:57:59 【问题描述】:

我正在开发一个应用程序,我想实现这一目标。 当用户登录时,我想获取他的用户名并存储在 firebase 中。 所以我创建了这个:

Signup(email: string, password: string, displayName: string) 
    this.angFire.auth.createUser(
      email: email,
      password: password
    ).catch(
      (err) => 
        console.log(err);
        this.error = err;
      )
...

这行得通,现在我还需要将 displayName 保存到当前用户中,所以我尝试在同一个函数 (Singup()) 中执行此操作:

let user = firebase.auth().currentUser;
    user.updateProfile(
      displayName: this.displayName,
      photoURL: "https://example.com/jane-q-user/profile.jpg"
    ).then(function() 
      console.log("Nome utente inserito");
    , function(error) 
      console.log("Errore durante inserimento utente");
    );

但它给了我这个:

error_handler.js:54 EXCEPTION: Error in ./SignupPage class SignupPage - inline template:70:4 caused by: Cannot read property 'updateProfile' of null

怎么做? 我在 ionic 2 angular2、firebase/angulrfire 上运行

文档参考:

更新用户的个人资料

您可以更新用户的基本个人资料信息——用户的显示 名称和个人资料照片 URL — 使用 updateProfile 方法。例如:

var user = firebase.auth().currentUser;

user.updateProfile( displayName: "Jane Q. User", photoURL: "https://example.com/jane-q-user/profile.jpg" ).then(function() // 更新成功。 , function(error) // 发生错误。 );

Here

【问题讨论】:

3 月发帖还是没有人得到正确答案? 你更新了 displayName 吗? 【参考方案1】:

我的回答为时已晚,但万一有人感兴趣,你可以这样做

  constructor(
    private afAuth: AngularFireAuth,
    private router: Router
  )  
   //
  


async signupUser(email: string, password: string): Promise<any> 
    const data = await this.afAuth.createUserWithEmailAndPassword(
      email,
      password
    );
    return this.updateUserData(data.user).then(() => 
      this.router.navigate(["/"]);
    );
  

 private updateUserData( uid, email, photoURL, displayName : User) 
    const userRef: AngularFirestoreDocument<User> = this.afs.doc(
      `users/$uid`
    );
    return userRef.set( uid, email, photoURL, displayName ,  merge: true );
 

您可以了解更多here

【讨论】:

以上是关于新建 Firebase 期间的 UpdateProfile()的主要内容,如果未能解决你的问题,请参考以下文章

使用 React 和 react-redux-firebase 在登录期间确定范围

添加 Firebase 依赖项后 Gradle 同步失败:打包 APK 期间文件重复

更改了 Firebase 项目,它给了我错误 [ API 密钥无效。请传递有效的 API 密钥。 ] 身份验证期间

如果在 Firebase Android 初始注册期间帐户已与 google 关联,则使用 Facebook 登录

Firebase Listener 在某些用户通过电话身份验证登录期间不起作用

插件期间的版本号添加v / s npm install?