android 在Firestore中删除参考文档时,参考字段会发生什么变化?

z3yyvxxp  于 2022-11-27  发布在  Android
关注(0)|答案(1)|浏览(117)

我已经查看了What is Firestore Reference data type good for?,但我没有看到任何地方提到当引用的文档被删除时引用字段/链接会发生什么,因为我也想自动删除引用文档。
所以我的问题是参照字段变成null,还是要手工查询被参照单据是否还存在?
我想后一种情况将涉及大量的读取操作。
我认为前一种情况是这样的

ref.addSnapshotListener((value, error) -> {
    for (QueryDocumentSnapshot queryDocSnap: value){
        DocumentReference docRef = queryDocSnap.get("ref");
        if (docRef == null){
            // delete queryDocSnap
        } else{
            // do something }
    }
});
hc2pp10m

hc2pp10m1#

参照字段是否为空,还是需要手工查询被参照单据是否还存在?
不会。您必须自己检查。因此,如果您有一个引用指向一个被删除的文档,该引用不会变为空。没有内置的机制来实现这一点。要克服这种情况,在删除特定文档之前,请检查其他文档中是否存在相应的引用。如果存在,则将该字段设置为空,否则,不采取任何操作。
我想后一种情况将涉及大量的读取操作。
您必须支付一定数量的读取操作,其数量等于搜索特定引用存在的查询所返回的文档数。例如,如果特定引用存在于10个文档中,则您必须支付10次读取操作+ 10次写入操作,因为您需要将该字段设置为空。

相关问题