Firebase使用新数据进行验证
我正在研究一个关于如何构建数据的优秀示例,如加藤在本文中所示: 我一点运气都没有,无法正常工作 数据结构是:Firebase使用新数据进行验证,firebase,Firebase,我正在研究一个关于如何构建数据的优秀示例,如加藤在本文中所示: 我一点运气都没有,无法正常工作 数据结构是: accepted_invites game1 desc "fun game" invites game1 uuidAAA true uuidBBB true 下面是一个屏幕截图: 如果我试着写下 ref.child("accepted_invites").child("game1").child("
accepted_invites
game1
desc "fun game"
invites
game1
uuidAAA true
uuidBBB true
下面是一个屏幕截图:
如果我试着写下
ref.child("accepted_invites").child("game1").child("userTwo").child("uuidBBB").setValue(true);
它将根据以下规则在已接受的邀请中输入:
".validate": "root.child('invites/'+$game_id+'/uuidBBB').exists()"
但不是
".validate": "root.child('invites/'+$game_id+'/'+newData.val()).exists()"
我试着使用模拟器,但我得到了
类型错误:+仅对数字和字符串进行操作
以下是我掌握的完整规则:
{
"rules": {
".write" : true,
".read" : true,
"accepted_invites": {
"$game_id": {
"$user_id": {
//This validate rule fails
//".validate": "root.child('invites/'+$game_id+'/'+newData.val()).exists()"
//This one works
".validate": "root.child('invites/'+$game_id+'/uuidBBB').exists()"
}
}
}
}
}
newData
关键字是引用所有传入数据的特殊属性,但不允许在路径表达式中使用,因为它可能不是字符串。i、 它很可能是一个物体
如果您对在路径中使用该数据的某些部分感兴趣,我建议只在更深的路径中包含另一个验证规则,例如:
{
"rules": {
".write" : true,
".read" : true,
"accepted_invites": {
"$game_id": {
"$accepting_user_id": {
"$sending_user_id": {
".validate": "root.child('invites').child($game_id).child($sending_user_id).exists()"
}
}
}
}
}
}
newData
关键字是引用所有传入数据的特殊属性,但不允许在路径表达式中使用,因为它可能不是字符串。i、 它很可能是一个物体
如果您对在路径中使用该数据的某些部分感兴趣,我建议只在更深的路径中包含另一个验证规则,例如:
{
"rules": {
".write" : true,
".read" : true,
"accepted_invites": {
"$game_id": {
"$accepting_user_id": {
"$sending_user_id": {
".validate": "root.child('invites').child($game_id).child($sending_user_id).exists()"
}
}
}
}
}
}
谢谢罗布,这对我来说起作用了,规则对我来说更有意义了。谢谢罗布,这对我来说起作用了,规则对我来说现在更有意义了。