避免使用嵌套功能,Google Cloud功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了避免使用嵌套功能,Google Cloud功能相关的知识,希望对你有一定的参考价值。

javascript新手,所以我感谢您的耐心......我正在寻找一个Google Cloud功能,它会在数据库输入时发送消息。它必须从数据库中的多个位置获取数据。以下是我到目前为止:

exports.NotifyNewApplication = functions.database
    .ref(`/Applications/{applicationId}/appWith`)
    .onCreate((snapshot, context) => {
        var applicationId = context.params.applicationId; 
        console.log('status',  applicationId); 
        var recieverId = snapshot.val();
        var database = admin.database().ref(`/Applications/${applicationId}`);
        return database.once('value').then(snapshot=>{
        var nameId= snapshot.child("dogId").val();
        console.log('status',  snapshot.child('nameId').val());
        console.log('status',  snapshot.child('appWith').val());
        var userDatabase = admin.database().ref(`/users/TopUsers/${recieverId}/token`)
        return userDatabase.once('value').then(snapshot=>{
        var token = snapshot.val();
        console.log('status',  snapshot.val());
        var nameDatabase = admin.database().ref(`/names/${nameId}/name`)
        return nameDatabase.once('value').then(snapshot=>{
        var Name= snapshot.val();
        const message = {
            notification: {
                title: 'Application Recieved',
                body: 'Somebody has put an application in for '+Name,
                icon: "default"
            },
        };
        return admin.messaging().sendToDevice(token,message).then((response) => {
            return console.log('Successfully sent message:', response);
        }).catch((error) => {
             return console.log('Error sending message:', error);
        });
        });
        });
        });
    });

然而,哪个有效,我得到一个警告说

  38:16  warning  Avoid nesting promises  promise/no-nesting
  42:16  warning  Avoid nesting promises  promise/no-nesting
  51:16  warning  Avoid nesting promises  promise/no-nesting
  51:16  warning  Avoid nesting promises  promise/no-nesting

讨论嵌套承诺并查看每个区域的返回线。我的问题是,我似乎无法理解如何取消嵌套返回并获得相同的工作结果。

我很感激任何人的指导。

以上是关于避免使用嵌套功能,Google Cloud功能的主要内容,如果未能解决你的问题,请参考以下文章

Google Cloud Storage 上传是不是会触发 Firebase Cloud 功能?

导出 Firestore 备份数据的云功能。使用 firebase-admin 或 @google-cloud/firestore?

在 Firebase 中使用 Google Cloud 功能接收电子邮件

如何使用 Google Cloud 功能和 MQTT 桥接器更新设备配置

无法按日期从 Google Cloud Pub/Sub 功能中的 Firebase 获取文档

Android 应用错误 - 您必须在 Google Cloud 项目上启用结算功能