Есть ли способ получить данные из массива в FireStore в Android - PullRequest
0 голосов
/ 26 июня 2019

Я хочу получить данные из user_stories подобной истории и story_start и story end?

Вот изображение моей базы данных Firestore.

enter image description here

1 Ответ

1 голос
/ 26 июня 2019

Как я вижу в вашей схеме базы данных, ваше свойство user_stories имеет тип array.Это означает, что когда вы пытаетесь получить этот документ, вы получаете это свойство как List объектов, а , а не как массив.К сожалению, Firestore не может преобразовать этот список в список пользовательских объектов, вы должны сделать это самостоятельно.Поэтому, пожалуйста, попробуйте это:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference sendStoriesRef = rootRef.collection("sendstories");
sendStoriesRef.document("kueIJcdQARzEKU7EVio9").get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
    @Override
    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
        if (task.isSuccessful()) {
            DocumentSnapshot document = task.getResult();
            if (document.exists()) {
                List<Map<String, Object>> list = (List<Map<String, Object>>) document.get("user_stories");

                //Iterate through the list to get the desired values
            }
        }
    }
});

Теперь просто переберите список, чтобы получить нужные значения.Если kueIJcdQARzEKU7EVio9 является uid пользователя, то просто измените это значение с помощью этого uid:

String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...