После нескольких дней, пытаясь найти решение, я обнаружил, что он может извлекать информацию о пользователях из базы данных. Однако важно отметить, что, поскольку мое приложение не содержит большого количества данных, эта структура работает для меня.
Так что я, по сути, был на правильном пути, но из-за некоторого недостатка в понимании огненной базы я пропустил несколько концепций.
private void getData(){
FirebaseFirestore db = FirebaseFirestore.getInstance();
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
final String current = user.getUid();//getting unique user id
db.collection("users")
.whereEqualTo("uId",current)//looks for the corresponding value with the field
// in the database
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (DocumentSnapshot document : task.getResult()) {
nameEdt.setText((CharSequence) document.get("firstName"));
emailEdt.setText((CharSequence) document.get("email"));
phoneEdt.setText((CharSequence) document.get("phone"));
// These values must exactly match the fields you have in your db
}
}
Как упоминалось ранее, документы не ассоциируются с пользователями, но вы МОЖЕТЕ связать их вместе, создав в своей базе данных поле под названием «все, что вы хотите» (я сделал мой uId). Это связано с тем, что firebase генерирует уникальный идентификатор для каждого пользователя при аутентификации. Создав поле, содержащее этот уникальный идентификатор, вы можете получить связанную информацию в этой коллекции.
Как создать поле:
Я создал «пользовательский» объект, который будет извлекать uid из моего текста редактирования. В моем коде я передавал uid везде, где создавал / аутентифицировал нового пользователя / учетную запись.
FirebaseUser testUser = FirebaseAuth.getInstance().getCurrentUser(); //getting the current logged in users id
String userUid = testUser.getUid();
String uidInput = userUid;
User user = new User(firstNameInput,lastNameInput,uidInput);
db.collection("users").document(userUid)
.set(user)
.addOnSuccessListener(new OnSuccessListener<Void>() {
примечание: я полагаю, что вы также можете добавить его к своей хэш-карте, если вы сделали это таким образом.