首页 文章

FirebaseUser的 Profiles 未更新

提问于
浏览
9

我在Android上使用Firebase Auth .

我的登录流程正常,但我无法立即更新 usernameprofileUrl .

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());
            }
        }
    });

}

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

UPDATE PROFILE:user exists = YES UPDATE PROFILE:user anonymous = NO UPDATE PROFILE:username = NULL UPDATE PROFILE:photoUrl = NULL

我不明白为什么即使使用“isSuccessful()”结果我的currentUser也没有更新

1 回答

  • 5

    这是最新版本的Firebase(9.8.0)中的已知问题 . 根据here,这是一个已知问题 . 现在唯一的临时修复是将所有内容回滚到版本9.6.1 .

    为Firebase组件更改应用程序的gradle依赖项(这只是一个临时修复程序,如果在新版本中使用某些内容,它可能会破坏其他内容):

    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'
    

    将您的grandle中匹配的那些更改为上面指定的版本 .

相关问题