我对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名称。
我的问题是:
提前感谢任何有帮助的人:)