Firestore文档的子事件侦听器和多个用户一次写入文档?
问题描述:
是否有任何方法来实现Firestore文档的ChildEventListener(即,当字段被添加/移除到文档中时,必须触发只能获取添加/删除字段的快照的侦听器)。最好是,它必须具有类似于Firebase实时数据库的OnChildAdded,OnChildChanged和OnChildDeleted功能。Firestore文档的子事件侦听器和多个用户一次写入文档?
另外,有没有办法让多个用户一次操作一个Firestore文档而不会发生冲突? (例如,用户1,2和3同时将他们的姓名添加到同一文档)。你能在Android中提供这个实现吗?
答
在Cloud 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;
}
// ... calculate which fields changed ...
}
});
我是知道的。我想知道任何更简单的方法来实现一个孩子监听器。另外,有没有办法让多个人同时在文档上写数据?不会有冲突吗? – Thanatos
不,在Android SDK> –
中,无法在文档的字段上实现子事件侦听器。至于冲突,Firestore使用“最后写赢”模型。如果你想确保数据的完整性,你可以使用事务。 –