无法从firebase中的多个集合中删除项目
我在firebase中有两个集合,例如A和B。当我将一个项目添加到其中一个集合(例如A)时,它会自动添加到另一个集合B。但当我从集合A中删除一个项目时,它会保留在另一个集合B中 当我从集合A中删除一个项目时,它将保留在另一个集合B中 我无法确定如何使两个集合中的项目都被删除无法从firebase中的多个集合中删除项目,firebase,dart,google-cloud-firestore,google-cloud-functions,Firebase,Dart,Google Cloud Firestore,Google Cloud Functions,我在firebase中有两个集合,例如A和B。当我将一个项目添加到其中一个集合(例如A)时,它会自动添加到另一个集合B。但当我从集合A中删除一个项目时,它会保留在另一个集合B中 当我从集合A中删除一个项目时,它将保留在另一个集合B中 我无法确定如何使两个集合中的项目都被删除 请帮助。这不是关系数据库。Cascadate更新/删除在关系数据库中是可能的,如Sql、Postgresql、Firebird。。。在无SQL中,文档之间没有任何关系。此外,最好将一些数据克隆到两个或多个文档中,而不是为其
请帮助。这不是关系数据库。Cascadate更新/删除在关系数据库中是可能的,如Sql、Postgresql、Firebird。。。在无SQL中,文档之间没有任何关系。此外,最好将一些数据克隆到两个或多个文档中,而不是为其创建单独的文档 但也许您可以通过使用引用类型来实现您想要的?我种了一两次,去看看可能是个好主意。但是,作为描述,它只是一个带有路径/引用的字段,没有魔力 通过: 如果要在删除父文档时删除子集合中的文档,则必须手动执行此操作,如“删除集合”中所示
因此,您要么想重新考虑DB模型,要么必须手动跟踪要删除的每个wlement。有两种方法: 从客户端使用批写入()
通过向文档添加删除触发器来使用云功能,并在触发时执行对其他文档的删除。考虑到您必须知道应该删除哪些文档,而在应用程序中删除这些文档并不困难()!无论在何处调用delete函数。请查看链接以获取示例和更多信息。
DocumentReference doc_1_reference = firestore.collection("messages").document(doc_1_uid);
DocumentReference doc_2_reference = firestore.collection("messages").document(doc_2_uid);
final batchWrite = firestore.batch();
batchWrite.delete(doc_1_reference);
batchWrite.delete(doc_2_reference);
await batchWrite.commit();