Как получить данные только один раз из firebase и не слушать никаких изменений данных - PullRequest
0 голосов
/ 08 февраля 2020

Я новичок в Firebase и недавно начал работать над этим. Каждый урок, который я видел, посвящен тому, как слушать изменения данных в облачном хранилище. Что делать, если я хочу получить данные только один раз и не хочу, чтобы их слушал. Пример сценария: просто выборка данных пользователя в последний раз или данные профиля любого пользователя

1 Ответ

1 голос
/ 08 февраля 2020

В документации есть специальный раздел о единовременном получении данных для запроса . Просто используйте метод get() для создаваемого запроса:

db.collection("cities")
        .get()
        .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
            @Override
            public void onComplete(@NonNull Task<QuerySnapshot> task) {
                if (task.isSuccessful()) {
                    for (QueryDocumentSnapshot document : task.getResult()) {
                        Log.d(TAG, document.getId() + " => " + document.getData());
                    }
                } else {
                    Log.d(TAG, "Error getting documents: ", task.getException());
                }
            }
        });

или для одного документа :

DocumentReference docRef = db.collection("cities").document("SF");
docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
    @Override
    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
        if (task.isSuccessful()) {
            DocumentSnapshot document = task.getResult();
            if (document.exists()) {
                Log.d(TAG, "DocumentSnapshot data: " + document.getData());
            } else {
                Log.d(TAG, "No such document");
            }
        } else {
            Log.d(TAG, "get failed with ", task.getException());
        }
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...