gpt4 book ai didi

javascript - 批量写入的 Firestore 安全规则。它们是如何工作的?

转载 作者:行者123 更新时间:2023-12-05 04:57:10 25 4
gpt4 key购买 nike

如果客户端代码应该对 Firestore 进行批量写入,如下所示:

DOC: Transactions and Batched writes

const db = firebase.firestore();
const batch = db.batch();

// UPDATE CITY POPULATION IN CITIES COLLECTION

const docRef = db.collection('CITIES').doc('NYC');
batch.update(nycRef, {population: 10000000});

// UPDATE CITY POPULATION IN ALL_CITIES_POPULATIONS COLLECTION

const docRef = db.collection('ALL_CITIES_POPULATION').doc('ALL_CITIES_POPULATION');
batch.update(docRef, {
NYC: 1000000
});

在第一次更新时,我更新了 CITIES 集合中 NYC 文档的一个属性。

在第二次更新时,我正在更新 ALL_CITIES_POPULATION 文档中名为 NYC 的属性,它位于 ALL_CITIES_POPULATION 集合中。即:它是一个单一的文档来保存每个城市的人口。

这段代码应该可以正常工作。

但是是否有安全规则来确保这些写入总是一起触发?如果某些恶意代码仅在第一次或第二次更新时触发一次写入怎么办?

对于批量写入场景,处理安全性的正确方法是什么?

最佳答案

要检查安全规则中的批量写入,您可以使用 getAfter()existsAfter()职能。这些返回/检查写入操作后存在的数据,如果该写入操作将被允许。

因此在您的情况下,您可以检查写入后 ALL_CITIES_POPULATION 文档的 NYC 字段是否与 NYC 文档的 相同population 字段。

关于javascript - 批量写入的 Firestore 安全规则。它们是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64590592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com