Я пытаюсь получить все элементы массива "comments" из моей базы данных firestore с помощью метода getCurrentData, но после некоторой отладки я обнаружил, что все, что я получил, это пустой массив вместо элементов "comments" ("Hello", "World" ).
Моя DocumentReference определена как:
commentReference = db.collection("Users").document(currentUser);
Я думаю, что commentReference определен правильно, но все же я не могу получить значения массива комментариев.
Кроме того, onComplete метод внутри метода getCurrentData пропущен при отладке.
Мне нужно получить все элементы, чтобы отобразить их в пользовательском макете представления переработчика.
public class ListActivity extends AppCompatActivity {
ArrayList<String> currentComments;
DocumentReference commentReference;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
//TODO : Show user's comments
db = FirebaseFirestore.getInstance();
currentUser = FirebaseAuth.getInstance().getCurrentUser().getUid();
commentReference = db.collection("Users").document(currentUser);
//HERE IS THE ARRAY & getCurrentData()
currentComments = new ArrayList<>();
getCurrentData();
//currentComments Still EMPTY!
}
public void getCurrentData() {
commentReference.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if(task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
if (document.exists()) {
currentComments = (ArrayList<String>) document.get("comments");
//Iterate through the list to get the desired values
}
}
}
}); //currentComments still empty, onComplete method is skipped!
}