【发布时间】:2017-04-05 01:16:07
【问题描述】:
我在 Android 上使用 Firebase 身份验证。
我的登录流程正常,但我无法立即更新 username 和 profileUrl。
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