Di Firestore, saat Anda menghapus dokumen, Anda dapat menentukan kondisi seperti { ada: benar }, untuk menghindari penghapusan dokumen jika tidak ada.
Dalam skenario bersamaan, ada kemungkinan bahwa kami hanya ingin menambahkan dokumen ke subkoleksi jika dokumen induk ada.
Misalnya, bayangkan struktur NoSql berikut:
-comment (doc)
/likes (subcollection created when the first like is given)
-like1
-like2
...
Apakah mungkin untuk melakukan sesuatu seperti
likeRef.create(data, { parent_exists: true });
??
Apakah satu-satunya cara untuk menangani situasi ini dengan Transaksi (membaca dokumen induk, dan membuat kesalahan saat .exists() salah)?
Saya takut dengan situasi seperti ini karena jika sub-koleksi dibuat pada saat yang sama dengan dokumen penampung dihapus, mungkin ada "entitas" yatim piatu dalam database yang bahkan dapat merusak UI jika tidak disiapkan untuk ini. kasus ekstrim.
1 menjawab
Ini tidak mungkin sebagai operasi tunggal di Firestore.
Satu-satunya cara untuk melakukannya adalah dengan memulai transaksi, lalu get()
dokumen induk di dalam transaksi, dan tambahkan dokumen ke subkoleksi jika induknya ada.