【问题标题】:What equivalent addValueEventListener in firestorefirestore 中等效的 addValueEventListener
【发布时间】:2019-03-29 07:40:38
【问题描述】:

我正在尝试在我的 Android 应用程序中从 Firebase 获取特定数据。 放代码


    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中执行以前的代码

【问题讨论】:

    标签: java android firebase firebase-realtime-database google-cloud-firestore


    【解决方案1】:

    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

    【讨论】:

      猜你喜欢
      • 2017-06-28
      • 2019-07-23
      • 1970-01-01
      • 2018-04-09
      • 1970-01-01
      • 2018-04-19
      • 2020-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多