如何使用Swift防止Firestore中的重复?

如何使用Swift防止Firestore中的重复?,swift,firebase,google-cloud-firestore,firebase-security,Swift,Firebase,Google Cloud Firestore,Firebase Security,这是我用来将数据读/写到Firestore中的规则:我如何防止从用户复制msg数据 rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if true; } } } 从本质上讲,在云Firestore中,您无法确保来自规则或SDK的数据的唯一性。尽管我相信以下链接将帮助您实现这一点,因

这是我用来
将数据读/写
到Firestore中的规则:我如何防止从用户复制
msg
数据

rules_version = '2';

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

}

从本质上讲,在云Firestore中,您无法确保来自规则或SDK的数据的唯一性。尽管我相信以下链接将帮助您实现这一点,因为它们适用于类似的用例:

解释如何通过解决方案实现您的目标

还可以检查其中的方法非常简单

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


让我知道这是否有用

无法防止安全规则中的重复值,因为它需要规则来考虑所有不缩放的文档。请参阅和其他一些:。如果某些内容必须是唯一的,则应将其用作文档的密钥/ID,以便安全规则可以检查是否存在使用该密钥/ID的特定文档。