【发布时间】:2018-03-20 07:41:27
【问题描述】:
我有这个用于 Firestore。
FirebaseFirestore db = FirebaseFirestore.getInstance();
CollectionReference ref = db.collection("app/appdata/notifications");
ref.addSnapshotListener((snapshot, e) -> {
if (e != null) {
Log.w(TAG, "Listen failed.", e);
return;
}
for (DocumentSnapshot x : snapshot.getDocuments()) {
System.out.println(x.getData());
}
});
但我不想使用那个循环,而是只需要获取新的孩子。我想要在 Realtime Db 中看到的类似以下内容。
ref.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String prevChildKey) {
Post newPost = dataSnapshot.getValue(Post.class);
System.out.println("Author: " + newPost.author);
System.out.println("Title: " + newPost.title);
System.out.println("Previous Post ID: " + prevChildKey);
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String prevChildKey) {}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String prevChildKey) {}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
【问题讨论】:
-
同样在 Firestore 中,您的所有数据都由文档(基本上是键值存储)和集合(文档集合)组成。所以实时数据库和 Firestore 都有一些基本的区别。
标签: java android firebase firebase-realtime-database google-cloud-firestore