Впервые в JavaScript, поэтому я ценю ваше терпение ... Я хочу написать облачную функцию Google, которая будет отправлять сообщение при записи в БД. Он должен получать данные из нескольких мест в БД. Ниже то, что у меня есть:
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
, который говорит о вложенных обещаниях и смотрит на строки возврата для каждой области. Моя проблема в том, что я не могу понять, как развернуть возврат и получить такой же рабочий результат.
Буду признателен за любое руководство.