This is the cloud function that triggers when data is changed,created or deleted.在此函数中,我标记了代码,在其中我想检索存储在具有相同ID的实时数据库的另一个节点中的用户令牌。您可以在实时数据库中看到。但是我无法从数据库中获取令牌。请帮助我解决此问题。
This is Structure of my realtime database.我想从该云函数的数据库中获取令牌
[once()
方法是异步的,并返回一个Promise,但是您不必等待这个Promise解析即可获取节点的值。
由于您将Cloud Function声明为异步函数,因此以下方法可以解决问题
once()
此外,建议避免混合使用异步/等待//...
const deviceTokenSnap = await admin.database().ref(`tokens/${userId}/token`).once('value');
const token = deviceTokenSnap.val();
//...
。
您应该按如下所示调整函数的结尾:
then()
您还应该使用try / catch块,请参见const response = await admin.messaging().sendToDevice(...);
console.log(response);
return null;
最后,请避免添加您的IDE的屏幕截图,但是将代码复制/粘贴到您的问题中。