基于规则的java删除firestore文档
我创建了一个应用程序,人们可以上传一些自己的图片
现在,为了处理人们上传不合适图片的情况,我创建了一个报告系统。我所做的基本上是每次有人报告图像时,报告人的ID都会添加到firestore
中的数组中,如下所示:
db
.collection( "Reports" )
.document( ImageID )
.update( "Reports", FieldValue.arrayUnion( UID ) );
现在,我想设置一个规则,例如,如果数组的大小为5(5个不同的人报告图像),它将自动从云中删除该图像
有什么方法可以代替每次读取数组并检查ist大小
多谢各位
# 1 楼答案
您可以在
Reports
集合上创建触发器# 2 楼答案
最常见的方法是通过云函数实现,云函数是服务器端代码,在(对于本用例)将某些内容写入Firestore时会自动触发。请参阅Cloud Functions上的文档和Firestore triggers上的页面
另一种方法(但涉及更多)是通过查询和安全规则来保护访问。在这种情况下,您将:
reportCount
添加到文档中,并确保其与报告同步更新李>reportCount
小于5的图像李>如上所述,这更多地涉及到您编写的代码量,但优点是不涉及服务器端代码,而且当有太多的报告进入文档时,文档会立即被阻止