我在 Firebase 上使用多个更新功能,其中我创建了一个对象,该对象一次更新数据库中的多个位置。我已分别授予每个位置的写入权限。以下是我尝试在 Firebase 上更新的内容的示例,作为多次更新的一部分
{
"alarms/298302f2-f95d-4200-b2ca-53dcf5706125/date": 1478141940167,
"userInfos/-KGvMbo5MK-W5q4qgcF0/alarms/298302f2-f95d-4200-b2ca-53dcf5706125": 1478141940167,
"userInfos/-KGvMIPwul2dUY181xLQ/backupForAlarms/298302f2-f95d-4200-b2ca-53dcf5706125": 1478141940167,
"alarms/57656d1f-4c01-4807-93ea-44ab42791140/date": 1479979440107,
"userInfos/-KGvMbo5MK-W5q4qgcF0/alarms/57656d1f-4c01-4807-93ea-44ab42791140": 1479979440107
}
比方说firebaseUpdateObj
包含上述对象。我正在使用下面的代码行来执行更新
firebase.database().ref().update(firebaseUpdateObj)
我在控制台上看到以下错误
FIREBASE WARNING: update at / failed: permission_denied
我已授予写入权限alarms
和userInfos
规则文件中的分支,我可以使用在这两个位置写入firebase.database().ref().child('alarms').child(alarmId).set(alarm)
and firebase.database().ref().child('userInfos').child(uid).set(userInfo)
。但是看起来当我发出像上面这样的更新命令时,它正在尝试检查我在该位置是否有写权限/
我显然不这么认为。
这是预期的行为吗?我可以在服务器端运行类似的更新命令,但我有服务器权限,所以我想规则不会出现在那里。我正在使用 Firebase3.3.0
.