Вы должны попытаться изменить структуру вашей пользовательской модели, добавить поле user_id в вашей пользовательской модели и сопоставить его так, чтобы оно было равно Uid, сгенерированному Firebase. Затем убедитесь, что при создании пользователем вашего документа идентификатор будет равен вашему идентификатору пользователя
затем вы можете получить его и сохранить в ArrayList. Я напишу логику, остальное должно быть легко для вас реализовать.
//implementing user model in registration
//getting the database reference
FirebaseFirestore mDb = FirebaseFirestore.getInstance();
Users user = new User();
user.setUser_id(FirebaseAuth.getInstance().getUid());
FirebaseFirestoreSettings settings = new FirebaseFirestoreSettings.Builder()
.build();
mDb.setFirestoreSettings(settings);
// we make sure that the document id is equal to user id
DocumentReference newUserRef = mDb
.collection("Users")
.document(FirebaseAuth.getInstance().getUid());
newUserRef.set(user).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
}
});
Тогда в вашей деятельности:
ArrayList<Users> listUsers = new ArrayList<>();
//getting the database reference
FirebaseFirestore mDb = FirebaseFirestore.getInstance();
CollectionReference reference = mDb.collection(Users);
//Retrieving the data from the database
reference.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
//We specify that we want the id and add it to the arrayList
for (QueryDocumentSnapshot document : task.getResult()) {
Users users = document.toObject(Users.class);
listUSers.add(user.getId());
}