作者:xxyy | 来源:互联网 | 2023-02-08 07:35
我有一个firebase数据库,我正在尝试使用云函数在我的数据库中的值更改时执行操作.到目前为止,它成功触发代码在我的数据库中的值更改时运行.但是,当数据库值更改时,我现在需要检查另一个值以确定其状态,然后执行操作.问题是我对JS有一些经验,除了部署,更改数据库中的值以及查看控制台日志之外,我无法调试我的代码.
有没有办法在数据库中查找另一个值并读取它?如何查找值然后为其设置值?这是代码:
exports.determineCompletion =
functions.database.ref('/Jobs/{pushId}/client_job_complete')
.onWrite(event => {
const status = event.data.val();
const other = functions.database.ref('/Jobs/' + event.params.pushId + '/other_job_complete');
console.log('Status', status, other);
if(status == true && **other.getValueSomehow** == true) {
return **setAnotherValue**;
}
});
此代码部分有效,它成功获取与client_job_complete相关联的值并将其存储在状态中.但是我如何获得其他价值呢?
此外,如果任何人有任何他们认为可以帮助我的JS或firebase文档,请分享!我在这里阅读了一堆关于firebase的内容:https://firebase.google.com/docs/functions/database-events 但它只讨论事件并且非常简短
谢谢您的帮助!
1> Doug Stevens..:
在编写数据库触发器函数时,该事件包含两个属性,这两个属性是对已更改数据位置的引用:
event.data.ref
event.data.adminRef
ref仅限于触发该功能的用户的权限. adminRef具有对数据库的完全访问权限.
每个Reference对象都有一个root属性,可以为您提供对数据库根目录的引用.您可以使用该引用在数据库的另一部分中构建引用的路径,并使用once()方法读取它.
您还可以使用Firebase管理SDK.
您可能应该查看许多代码示例.