首页 > 解决方案 > 如何使用 Swift 在 Firestore 中防止重复?

问题描述

这是我用于read/write将数据导入 Firestore 的规则:如何防止msg数据从用户那里复制?

rules_version = '2';

service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true; }
} 

}

标签: swiftfirebasegoogle-cloud-firestorefirebase-security

解决方案


原生地,在 Cloud Firestore 中,您无法确保来自规则或 SDK 的数据的唯一性。尽管我相信以下链接将帮助您实现这一目标,因为它们适用于类似的用例:

这篇 Stackoverflow 帖子中接受的答案(感谢 Frank van Puffelen)解释了如何通过变通方法实现您想要的。

另请查看本文,其中方法非常简单。

通常,为了检查唯一性,您应该创建一个集合“X”,其中每个文档对应一个您需要唯一的“x”值。集合中每个文档的 documentID 应该以您希望唯一的值命名。因此,当您尝试将搜索结果保存到 Firestore 时,请检查“X”集合以查看是否有适合您每次要添加的搜索结果的 documentId。如果 documentId 不存在,则将搜索结果添加到您的集合中。您的用例中的误解是文档的 documentID 应该包含消息作为名称才能正常工作。

让我知道这是否有帮助。


推荐阅读