swift - 如何使用 Swift 在 Firestore 中防止重复?
问题描述
这是我用于read/write
将数据导入 Firestore 的规则:如何防止msg
数据从用户那里复制?
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true; }
}
}
解决方案
原生地,在 Cloud Firestore 中,您无法确保来自规则或 SDK 的数据的唯一性。尽管我相信以下链接将帮助您实现这一目标,因为它们适用于类似的用例:
这篇 Stackoverflow 帖子中接受的答案(感谢 Frank van Puffelen)解释了如何通过变通方法实现您想要的。
另请查看本文,其中方法非常简单。
通常,为了检查唯一性,您应该创建一个集合“X”,其中每个文档对应一个您需要唯一的“x”值。集合中每个文档的 documentID 应该以您希望唯一的值命名。因此,当您尝试将搜索结果保存到 Firestore 时,请检查“X”集合以查看是否有适合您每次要添加的搜索结果的 documentId。如果 documentId 不存在,则将搜索结果添加到您的集合中。您的用例中的误解是文档的 documentID 应该包含消息作为名称才能正常工作。
让我知道这是否有帮助。
推荐阅读
- java - 我如何允许程序在发生异常/错误的情况下继续运行?
- javascript - 根据父母鼠标填充孩子的背景
- java - jersey Maven 项目 POM.XML 第一行错误
- html - iframe 我有跨域问题
- typescript - 排除方法的打字稿键
- php - Wordpress Ajax 按类别过滤自定义帖子类型返回 [found_posts":0,]
- python-3.x - Python 获取类中的@property.setter 修饰方法
- java - 如何在coldfusion中实现jCrypt java类?
- firebase - React Native Notification Websockets v/s Firestore listener v/s SSE
- azure-active-directory - Azure B2C Active Directory:更新所有用户的一个属性