Что вы можете попробовать, так это то, что вы можете настроить базу данных Firebase Realtime и сохранить в ней значения, например, такие как: имя пользователя, imageURL, возраст и адрес.
После того, как вы получите все эти данные (я полагаю, вы можете сделать это сами).Вы можете сохранить данные в дочернем элементе users
в своей базе данных Firebase, используя следующий код:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference userRef = rootRef.child("users");
DatabaseRefrence detailRef = ref.child(userName);
detailRef.child("age").setValue(age);
detailRef.child("imageURL").setValue(imageURL);
detailRef.child("address").setValue(address);
Чтобы получить доступ и показать данные выше во втором упражнении, вы должны использовать event-listeners
,следующим образом:
// for example you have to read and show the address of the user from database
userRef.child(Current_userName).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String address = dataSnapshot.child("address").getValue(String.class);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
Вы можете сделать это, чтобы прочитать все данные и отобразить их в вашем профиле активности.Для действия, в котором вы хотите, чтобы они редактировали эти данные, вы можете получить их ввод и использовать Maps
для обновления всех значений в базе данных, например:
userRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String identifier = userName;
Map<String,Object> values = new HashMap<>();
values.put("address", address);
values.put("age",age);
values.put("imageURL",newImageURL);
userRef.child(identifier).updateChildren(values);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
Это также вызовет слушателей в вашемкласс профиля и они будут соответственно обновлены.