Завершить процесс узла с помощью SQL / Firebase - PullRequest
0 голосов
/ 21 марта 2019

Новичок в узел / SQL / Firebase.

У меня есть проект, который создает соединение SQL, обновляет некоторые строки в БД, а затем извлекает данные из запроса для отправки сообщений Firebase с помощью fcm_token.

//first i initialize my firebase-admin app
const admin = require('firebase-admin');
const mysqlssh = require('mysql-ssh');

admin.initializeApp({
    credential: 'credential',
    databaseURL: 'db_url'
});
//then I connect to Sql-ssh
mysqlssh.connect(
{
    host: 'host',
    user: 'user',
    privateKey: 'privatekey'
},
{
    host: 'host',
    user: 'admin',
    password: 'pwd',
    database: 'db',
}
).then(
  (client)=>{
    query(client).then((results)=>{
     results.forEach((userRow)=>{
       getFcmToken(client,userRow.userID).then((fcm)=>{
        fireBasePushNotification(fcm[0].fcm_token);
       })
     })
     closeQuery(mysqlssh,client);
     admin.app().delete(); //<---PROBLEM OCCURS HERE
  })
})

function fireBasePushNotification(fcm_token){
 let payload = {//payload content here}
 admin.messaging().sendToDevice(fcm_token,payload);
}

Каждый раз, когда я пытаюсь запустить этот скрипт, я получаю следующую ошибку:

UnhandledPromiseRejectionWarning: Ошибка: приложение Firebase по умолчанию не существует.Убедитесь, что вы вызываете initializeApp () перед использованием любых сервисов Firebase.

Я понимаю, что это, вероятно, связано с асинхронной природой Node.js

МОЙ ВОПРОС: В какой частимой код я могу разместить команду для удаления приложения Firebase, чтобы я мог отправлять все свои push-уведомления без получения этой ошибки?Должен ли я открывать и закрывать его каждый раз, когда отправляю уведомление?спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...