Firebase - 更改Facebook提供商

时间:2017-11-17 21:47:32

标签: javascript facebook firebase react-native

我对Firebase生态系统还不熟悉,所以我希望我不要问太基本的东西。 我正在使用firebase-js-sdk以及电子邮件+密码注册。当用户使用电子邮件注册时,我提示他们选择用户名,然后使用user.updateProfile()方法存储它。这工作正常,因为下次我调用firebase.auth().currentUser时,我看到包含更新值的displayName属性 至于facebook,我正在使用react-native-fbsdk,我使用以下功能验证用户:

const fbLogin = () => {
  return new Promise((resolve, reject) => {

    LoginManager
      .logInWithReadPermissions(['public_profile', 'email'])
      .then((result) => {
        if (result.isCancelled) {
          console.log('login cancelled');
        } else {
          AccessToken
            .getCurrentAccessToken()
            .then((data) => {
              const credentials = firebase.auth.FacebookAuthProvider.credential(data.accessToken);
              firebase
                .auth().signInWithCredential(credentials)
                .then((res) => resolve(res))
                .catch((err) => reject(err));
            })
        }
      }).catch(err => reject(err));

  });
}

将用户数据存储在Firebase后,我请他选择用户名,然后按照电子邮件身份验证的相同步骤更新displayName。这似乎也有效,因为如果我调用firebase.auth().currentUser,我会看到更新的displayName。唯一的问题是当我重新加载应用程序时,displayName又回到了facebook名称。
我的问题是:

  • 是否可以覆盖Facebook提供的displayName?
  • 如果是这样,这是正确的做法吗?

提前感谢任何有帮助的人:)

0 个答案:

没有答案