FirebaseUser的个人资料未更新 [英] FirebaseUser's profile is not updated

查看:114
本文介绍了FirebaseUser的个人资料未更新的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用Android上的Firebase身份验证。



我的登录流程正常,但无法更新用户名& profileUrl 之后。

  public void test(){
String username =test用户名;
Uri avatarUri = Uri.parse(http://www.pixelstalk.net/wp-content/uploads/2016/08/Wonderful-Random-Background.jpg);
UserProfileChangeRequest.Builder builder = new UserProfileChangeRequest.Builder();
builder.setDisplayName(username);
builder.setPhotoUri(avatarUri);
$ b Log.d(UPDATE PROFILE,user exists =+(firebaseAuth.getCurrentUser()!= null?YES:NO));
Log.d(UPDATE PROFILE,user anonymous =+(firebaseAuth.getCurrentUser()。isAnonymous()?YES:NO));
firebaseAuth.getCurrentUser()。updateProfile(builder.build())。addOnCompleteListener(new OnCompleteListener< Void>(){
@Override
public void onComplete(@NonNull Task< Void> ){
if(task.isSuccessful()){
if(firebaseAuth.getCurrentUser()。getDisplayName()!= null){
Log.d(UPDATE PROFILE,username (UPDATE PROFILE,username = NULL);
}
if(firebaseAuth.getCurrentUser()。getPhotoUrl()!= null){
Log.d(UPDATE PROFILE,photoUrl =+ firebaseAuth.getCurrentUser()。getPhotoUrl()。toString());
} else {
Log.d(UPDATE PROFILE,photoUrl = NULL);
}
} else {
Log.e(UPDATE PROFILE ,task.getException()。getMes智者());
}
}
});




$ b我尝试了上面的测试方法,这是我的输出



UPDATE PROFILE:user exists = YES

UPDATE PROFILE:user anonymous = NO


$ b

UPDATE PROFILE:username = NULL

UPDATE PROFILE:photoUrl = NULL

我不明白为什么即使使用isSuccessful()结果,我的currentUser也不会更新

解决方案

这是最新发布的Firebase(9.8.0)中的一个已知问题。这是根据此处的已知问题。现在唯一的临时修复是把所有东西都回滚到版本9.6.1。

将Fireplace组件的应用程序的gradle依赖关系更改为此(这只是一个临时修复,如果在新版本中使用某些东西,则可能会破坏其他功能):

  compile'c​​om.google.android.gms:play-services-auth:9.6.1'
compile'c​​om .google.firebase:firebase-core:9.6.1'
compile'c​​om.google.firebase:firebase-messaging:9.6.1'
compile'c​​om.google.firebase:firebase-auth:9.6 .1'
compile'c​​om.google.firebase:firebase-database:9.6.1'

将你的祖母的那些匹配的变成上面指定的版本。


I use Firebase Auth on Android.

My signin flow works fine but I can't update username & profileUrl right after.

public void test() {
    String username = "test username";
    Uri avatarUri = Uri.parse("http://www.pixelstalk.net/wp-content/uploads/2016/08/Wonderful-Random-Background.jpg");
    UserProfileChangeRequest.Builder builder = new UserProfileChangeRequest.Builder();
    builder.setDisplayName(username);
    builder.setPhotoUri(avatarUri);

    Log.d("UPDATE PROFILE", "user exists=" + (firebaseAuth.getCurrentUser() != null ? "YES" : "NO"));
    Log.d("UPDATE PROFILE", "user anonymous=" + (firebaseAuth.getCurrentUser().isAnonymous() ? "YES" : "NO"));
    firebaseAuth.getCurrentUser().updateProfile(builder.build()).addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            if (task.isSuccessful()) {
                if (firebaseAuth.getCurrentUser().getDisplayName() != null) {
                    Log.d("UPDATE PROFILE", "username=" + firebaseAuth.getCurrentUser().getDisplayName());
                } else {
                    Log.d("UPDATE PROFILE", "username=NULL");
                }
                if (firebaseAuth.getCurrentUser().getPhotoUrl() != null) {
                    Log.d("UPDATE PROFILE", "photoUrl=" + firebaseAuth.getCurrentUser().getPhotoUrl().toString());
                } else {
                    Log.d("UPDATE PROFILE", "photoUrl=NULL");
                }
            } else {
                Log.e("UPDATE PROFILE", task.getException().getMessage());
            }
        }
    });

}

I tried the test method above and this is my output

UPDATE PROFILE: user exists=YES

UPDATE PROFILE: user anonymous=NO

UPDATE PROFILE: username=NULL

UPDATE PROFILE: photoUrl=NULL

I don't understand why my currentUser is not updated even with a "isSuccessful()" result

解决方案

This is a known issue in the latest release of Firebase (9.8.0). It's a known issue according to here. The only temp fix right now is to rollback everything to version 9.6.1.

Change your gradle dependencies for the app to this for Firebase components (this is just a temp fix, and it could break something else if using something in new version):

compile 'com.google.android.gms:play-services-auth:9.6.1'
compile 'com.google.firebase:firebase-core:9.6.1'
compile 'com.google.firebase:firebase-messaging:9.6.1'
compile 'com.google.firebase:firebase-auth:9.6.1'
compile 'com.google.firebase:firebase-database:9.6.1'

Change those matching ones in your grandle to the versions specified above.

这篇关于FirebaseUser的个人资料未更新的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆