Flutter arrayContains查询的Firestore安全规则

Flutter arrayContains查询的Firestore安全规则,flutter,dart,google-cloud-firestore,firebase-security,Flutter,Dart,Google Cloud Firestore,Firebase Security,我有一个基本搜索功能的动态查询,使用arrayContains显示结果 FirebaseFirestore.instance .collection('colName') .where('arrayFieldName', arrayContains: 'somestring') .snapshots' 是否可以设置Firestore安全规则来检查arrayContains中使用的字符串('somestring')是否至少包含3个字符 谢谢,不,不可能。无法访问该字符串的值或对其值设置约束。如果

我有一个基本搜索功能的动态查询,使用arrayContains显示结果

FirebaseFirestore.instance
.collection('colName')
.where('arrayFieldName', arrayContains: 'somestring')
.snapshots'
是否可以设置Firestore安全规则来检查arrayContains中使用的字符串('somestring')是否至少包含3个字符


谢谢,

不,不可能。无法访问该字符串的值或对其值设置约束。如果希望
arrayFieldName
array属性的元素至少包含三个字符,则必须在写入值时强制执行,而不是在查询值时强制执行。

如果textField包含三个字符,则客户端的查询将启动。(就像任何基本的搜索字段一样)但是我想知道我们是否可以用这样的规则限制查询整个集合。我使用数组字段来索引关键字。喜欢0K1。柯2。关键3。键4。科沃5。凯沃6。我想你明白了。在客户端,当输入第三个字符时,搜索查询开始。那很有效。有了你的答案,我唯一的选择就是检查查询限制值,对吗?我需要限制退回文件的数量。谢谢你的回答。听起来你必须在客户端应用程序上检查,而不是安全规则。只有在用户输入足够的字符后,应用程序才需要代码来执行查询;然而,在这种情况下,答案中的任何内容都不会对您有所帮助。