【问题标题】:FirebaseUser's profile is not updatedFirebaseUser 的个人资料未更新
【发布时间】:2017-04-05 01:16:07
【问题描述】:

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

我的登录流程正常,但我无法立即更新 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());
            }
        }
    });

}

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

更新个人资料:用户存在=YES

更新个人资料:用户匿名=否

更新个人资料:用户名=NULL

更新个人资料:photoUrl=NULL

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

【问题讨论】:

  • 我的早些时候工作正常,但后来我开始遇到这个问题。如果你注销并再次登录,它通常会填满它......它似乎没有立即更新某种原因。
  • @AubtinSamai 是的,它没有立即更新
  • 我希望他们能尽快修复它

标签: android firebase firebase-authentication


【解决方案1】:

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

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

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 中匹配的那些更改为上面指定的版本。

【讨论】:

  • 是的,不幸的是,即使是 10.0.0 版本,错误仍然存​​在...... :(
  • 在 10.0.1 中也看到了这个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
  • 2014-09-28
  • 1970-01-01
  • 2016-09-21
  • 2010-11-19
相关资源
最近更新 更多