在Firebase规则中为数组内的元素设置最小/最大值,可以通过使用allMatch()
函数来实现。
首先,我们需要定义一个规则,以确保数组内的所有元素都满足最小/最大值的条件。假设我们要设置数组内的元素都必须大于等于0且小于等于100,可以使用以下规则:
"rules": {
"yourCollection": {
"$document": {
"yourArrayField": {
".validate": "newData.isNumber() && newData.val() >= 0 && newData.val() <= 100 && newData.parent().parent().child('yourArrayField').val().allMatch((value) => value >= 0 && value <= 100)"
}
}
}
}
上述规则中,newData.isNumber()
用于确保新数据是一个数字,newData.val() >= 0 && newData.val() <= 100
用于确保新数据的值在0到100之间。而newData.parent().parent().child('yourArrayField').val().allMatch((value) => value >= 0 && value <= 100)
用于确保数组内的所有元素都满足最小/最大值的条件。
这样,当有新数据写入到yourArrayField
字段时,Firebase会自动验证该数据是否满足规则,如果不满足则会拒绝写入。
推荐的腾讯云相关产品是腾讯云云数据库CDB,它是一种高性能、可扩展、高可用的云数据库服务。您可以通过以下链接了解更多关于腾讯云云数据库CDB的信息:腾讯云云数据库CDB。
领取专属 10元无门槛券
手把手带您无忧上云