функция push-уведомлений firebase topi c name - PullRequest
0 голосов
/ 18 января 2020

Я пытаюсь настроить индекс. js файл в javascript для pu sh уведомления для firebase iOS. вот мой код под вопросом:

exports.newsFRA = functions.database
.ref('news/FRA/{uid}')
.onCreate((snapshot, context) => {
  let newsItemFRA = snapshot.val()
  sendNotificationFRA(newsItemFRA)
})

function sendNotificationFRA(newsItemFRA) {
  let title = newsItemFRA.title
  let message = newsItemFRA.message

  let payload = {
    notification: {
      title: 'FRA News',
      body: title,
      sound: 'default'
    }
  }

  console.log(payload)
  let topic = 'FRA'

  admin.messaging().sendToTopic(topic, payload)

}

exports.newsLHR = functions.database
.ref('news/LHR/{uid}')
.onCreate((snapshot, context) => {
  let newsItemLHR = snapshot.val()
  sendNotificationLHR(newsItemLHR)
})

function sendNotificationLHR(newsItemLHR) {
  let title = newsItemLHR.title
  let message = newsItemLHR.message

  let payload = {
    notification: {
      title: 'LHR News',
      body: title,
      sound: 'default'
    }
  }

  console.log(payload)
  let topic = 'LHR'

  admin.messaging().sendToTopic(topic, payload)

}

2 функции одинаковы, то есть изменение topi c и соответствующее имя. У меня 21 такой же. Я уверен, что есть лучший способ сделать это, обнаруживая в firebase содержимое аутентифицированного текущего дочернего пользователя, называемого «base»: и используя значение (FRA, CDG, ORD et c) для определения topi c. поэтому мне не нужно повторять одну и ту же функцию для каждой доступной базы. Надеюсь, я не слишком смущен, и я очень ценю любую помощь. спасибо

1 Ответ

1 голос
/ 18 января 2020

Вы можете использовать несколько подстановочных знаков и принять значение параметра, чтобы определить, что делать. Например, это действительно:

exports.news = functions.database
.ref('news/{x}/{uid}')
.onCreate((snapshot, context) => {
  const x = context.params.x
  let newsItem = snapshot.val()
  sendNotification(x, newsItem)
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...