Как получить каждый элемент массива в FireStore - PullRequest
0 голосов
/ 18 октября 2019

Я проводил много часов в поисках того, как получить массив внутри. Я хочу получить доступ к каждому элементу массива и сохранить его в виде строки, например, String array = ??? (Я хочу получить значение).

Чтобы понять мой вопрос. Допустим, у меня есть массив, содержащий все идентификаторы, и я хочу проверить, существует ли идентификатор, и если да, то я хочу, чтобы каждый элемент был сохранен в строке (каждый элемент должен быть в другой строке), чтобы я мог использовать его позжев других моих действиях.

Есть ли способ использовать цикл for?

String userId = FirebaseAuth.getInstance().getCurrentUser().getUid();

        DocumentReference docRef = db.collection("Users").document(userId);


        docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
            @Override
            public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                if (task.isSuccessful()) {
                    DocumentSnapshot document = task.getResult();
                    if (document.exists()) {
                        String plan_id =  document.get("plan_id").toString();
                        Log.d(TAG, "***Found field: " + plan_id);
                    } else {
                        Log.d(TAG, "***No such document");
                    }
                } else {
                    Log.d(TAG, "***Get failed with ", task.getException());
                }
            }
        });

Я получаю следующий вывод

***Found field: [3bTzKOmIS1zEHprJa1u0, 6nDgyEimKOnoPbZRsbmQ]

1 Ответ

0 голосов
/ 18 октября 2019

Если у вас есть поле типа списка в документе, оно будет преобразовано в объект типа списка в Java при его извлечении. То, что вы делаете сейчас, это преобразование этого списка в строку, что не очень полезно. Просто приведите его к списку и повторите его, как и любой другой список:

List<Object> plan_id = (List<Object>) document.get("plan_id");
for (Object o : plan_id) {
    Log.d(TAG, "List element " + o.toString());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...