Javascript 什么可能会阻止一个;“儿童被除名”;射击事件?
考虑以下(简化)代码: (服务器端工作人员处理任务,将结果写入数据库的另一个位置,然后删除对象。) 任务对象已被删除,但Javascript 什么可能会阻止一个;“儿童被除名”;射击事件?,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,考虑以下(简化)代码: (服务器端工作人员处理任务,将结果写入数据库的另一个位置,然后删除对象。) 任务对象已被删除,但子对象已删除事件从未触发 什么可以阻止已删除的子事件触发?检查安全规则: 如果将安全规则保留为以下默认值,则事件查询将不起作用: { "rules": { ".read": "auth != null", ".write": "auth != null", } } 此外,如果您的安全规则不允许对数据写入的位置进行读取访问(即,用户具有写入权限但没有读取
子对象已删除
事件从未触发
什么可以阻止
已删除的子事件触发?检查安全规则:
如果将安全规则保留为以下默认值,则事件查询将不起作用:
{
"rules": {
".read": "auth != null",
".write": "auth != null",
}
}
此外,如果您的安全规则不允许对数据写入的位置进行读取访问(即,用户具有写入权限但没有读取权限),则事件查询将失败
事件查询返回更改数据的快照(在删除子事件的情况下删除数据),因此有必要进行读取访问。我最初的假设是,任务执行得太快。我已经消除了处理时间这一因素:我在任务工作者处理代码时添加了人为延迟,但是,结果是一样的:removed
上的事件从未触发。此外,我已将task添加到非根位置(../queue/task/
),但这也没有解决问题。我很自信这是一个简单的问题,但不知怎么的,我还是忽略了错误。
{
"rules": {
".read": "auth != null",
".write": "auth != null",
}
}