我目前正在使用Firestore规则,因此需要验证传入的数据。除了我已经拥有的东西之外,我还需要验证传入的origin和tag字段是否存在于集合origins和tag中。我已经找到了使用引用时的方法,但是我正在使用嵌入式数据,因此不确定如何准确地做到这一点。
function incomingData() {
return request.resource.data
}
function validTicket() {
return incomingData().email is string &&
incomingData().description is string &&
incomingData().address is string &&
incomingData().location is string &&
incomingData().postCode.matches('^[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9]') &&
incomingData().size() == 5 &&
incomingData().hasAll(['email','description', 'address', 'location', 'postCode']) &&
isSecretary()
}
在标签集合中,每个文档都有一个带有标签名称的值。起源也是如此。
How do I make a list (FlatList) automatically scroll through the elements using Animated?
答案 0 :(得分:2)
对不起,我的回答将是不完整的,我需要您发布当前的Firestore规则以及票证集合的名称...
无论如何,对于标签,您将无法在标签中搜索它们的值,也无法在规则内进行搜索,因此应将其另存为键。也就是说,运动文档的密钥应该是运动,而不是8VCCvq7qnvjyT98r95pu。
接下来,您将必须按照以下方式使用函数 exists :
function isTagExists(tag) {
return exists(/databases/$(database)/documents/tags/$(tag));
}
让我知道您是否更新了问题,或者在我的解决方案方面需要更多帮助。
您还可以在以下位置阅读更多内容: https://firebase.google.com/docs/firestore/security/rules-conditions