Я использую Firebase в моем приложении для Android.пользователь подписывает приложение, используя gmail.при первом входе в приложение пользователи сохраняют свои данные в базе данных.после первого входа пользователя в приложение приложение должно обновить пользовательские данные в базе данных, если они изменились в gmail.Проблема в том, что после изменения имени пользователя почты в gmail mAuth.getCurrentUser().getDisplayName()
возвращает старое имя пользователя, а не новое.
это мой код:
userName = user.getDisplayName();
userImage = user.getPhotoUrl().toString();
userEmail = user.getEmail();
myRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (!dataSnapshot.child(mAuth.getUid()).exists()) {
Map<String, Object> map = new HashMap<>();
map.put("userName", userName);
map.put("userImage", userImage);
map.put("userEmail", userEmail);
map.put("points", 0);
map.put("acceptedQuestions", 0);
map.put("refusedQuestions", 0);
map.put("acceptedLessons", 0);
map.put("refusedLessons", 0);
map.put("userType", userType);
myRef.child(mAuth.getUid()).setValue(map);
}
else {
currentUserReference = myRef.child(mAuth.getUid());
currentUserReference.child("userName").setValue(userName);
currentUserReference.child("userImage").setValue(userImage);
currentUserReference.child("userType").setValue(userType);
Toast.makeText(GeneralSignActivity.this, "user name is : " + userName, Toast.LENGTH_SHORT).show();
}
что мне интересноявляется то, что переменная userName возвращает старое имя пользователя, а не новое