Какой эквивалент addValueEventListener в firestore - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь получить определенные данные из Firebase в моем приложении для Android. Введите код


    DatabaseReference Ref = FirebaseDatabase.getInstance().getReference().child("Working").child(FoundID).child("l");
    Ref.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

                               }

        }

//

Но когда используется firestore, это отказ addValueEventListener Как сделать предыдущий код в FireStore не FireBase

1 Ответ

1 голос
/ 29 марта 2019

Firestore отличается от базы данных в реальном времени, вы должны прочитать документацию здесь:

https://firebase.google.com/docs/firestore/quickstart

Но эквивалент addValueEventListener равен get()

Из документов:

public Task<DocumentSnapshot> get ()

Считывает документ, на который ссылается этот DocumentReference.

Вы можете получить все документы в определенной коллекции, например:

db.collection("Working")
    .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());
            }
        }
    });

Чтобы иметь возможность извлекать данные с помощью FireStore в режиме реального времени, вы можете сделать следующее:

final DocumentReference docRef = db.collection("cities").document("SF");
docRef.addSnapshotListener(new EventListener<DocumentSnapshot>() {
@Override
public void onEvent(@Nullable DocumentSnapshot snapshot,
                    @Nullable FirebaseFirestoreException e) {
    if (e != null) {
        Log.w(TAG, "Listen failed.", e);
        return;
    }

    if (snapshot != null && snapshot.exists()) {
        Log.d(TAG, "Current data: " + snapshot.getData());
    } else {
        Log.d(TAG, "Current data: null");
     }
   }
});

подробнее здесь:

https://firebase.google.com/docs/firestore/query-data/listen

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