Получить значения массива из firestore, используя Android Studio - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь получить все элементы массива "comments" из моей базы данных firestore с помощью метода getCurrentData, но после некоторой отладки я обнаружил, что все, что я получил, это пустой массив вместо элементов "comments" ("Hello", "World" ).

Моя DocumentReference определена как:

commentReference = db.collection("Users").document(currentUser);

Я думаю, что commentReference определен правильно, но все же я не могу получить значения массива комментариев.

Кроме того, onComplete метод внутри метода getCurrentData пропущен при отладке.

Мне нужно получить все элементы, чтобы отобразить их в пользовательском макете представления переработчика.

enter image description here enter image description here

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!
    }

1 Ответ

0 голосов
/ 11 апреля 2020

попробуйте QueryDocumentSnaphot для доступа к данным, которые вы сохранили в базе данных firestore. Я смог найти учебник для вас https://codinginflow.com/tutorials/android/cloud-firestore/part-16-arrays

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...