我正在制作一个慈善应用程序,它使用Firebase在应用程序中直接与Cloud对话
任何人(用户与否)都可以创建一个慈善机构,每个慈善机构都位于一个城市。
如果用户添加了一个新的,我想阻止其他用户在他创建慈善机构的城市里创建一个新的慈善机构30分钟。
我认为这是实现30分钟持续时间的方法,但我如何在每个城市都做到这一点?
match /charity/{document=**} {
allow create: if isCalm();
request.time > resource.data.timestamp + duration.value(30, 'm');
}
}如果你不明白,这里有一个例子:假设我有3个城市(A,B和C),如果用户在A城市创建一个慈善机构,我想阻止任何人在A市创建慈善机构30分钟。
发布于 2020-05-06 17:25:48
我不确定你能不能用规矩.如果你可以的话,当一个用户试图创建一个新的慈善机构时,它会打破一个例外女巫不是一个好做法.您最好将一个TimeStamp添加到您的Fi还原文档中,获取文档并验证是否已经过了30分钟
发布于 2020-05-06 18:01:52
我自己也没试过。
如果你有一个集合,称为城市,在那里,一个子集合被称为慈善。然后,当您访问特定的慈善子集合并编写新的慈善文档时,安全规则可以确保父(市)字段满足您至少30分钟的条件。您必须在城市文档中创建一个新字段,lastModified或lastCharityCreatedAt。这样,就不需要云功能了。
总之,:在父文档中跟踪最后一次写入,以便在需要时检查它。
https://stackoverflow.com/questions/61640960
复制相似问题