пожарный облачный обмен сообщениями iOS Swift - PullRequest
0 голосов
/ 22 января 2019

Я не могу получить новую запись в моей базе данных firestore для создания оповещения для пользователей.

  1. Приложение IOS без проблем извлекает и обновляет данные пожарного хранилища
  2. Если я вручную отправляю сообщение из firebase, мое приложение получает сообщение без проблем
  3. Я могу развернуть свою облачную функцию в базе данных без ошибок

Что я делаю не так? Спасибо за любую помощь.

let functions = require('firebase-functions')
let admin = require('firebase-admin')
admin.initializeApp(functions.config().firebase)

let db = admin.firestore()

  exports.announceAlert = functions.database
    .ref('/alerts/{documentId}')
    .onCreate((snapshot, context) => {
        let alert = snapshot.val()
        sendNotification(alert)
    })

function sendNotification(alert) {

    let title = alert.Incident_Number
    let summary = alert.Flash_Summary
    let status = alert.Incident_Status  


    let payload = {
        notification: {
            title: 'Critical Incident: ' + title, 
            body: 'Summary: ' + summary,
            sound: 'default' 

        }
    }

    console.log(payload)

    let topic = "Alerts"
    admin.messaging().sendToTopic(topic, payload) 

}

1 Ответ

0 голосов
/ 24 января 2019

Это то, что я сделал, и это сработало.Помните, что пользователь вашего приложения для iOS должен подписаться на эту тему, и вы делаете это через приложение.Приведенный ниже код является просто функцией, сообщающей firebase отправлять уведомления подписанным пользователям, когда в определенном хранилище создается новый документ.

let functions = require('firebase-functions')
let admin = require('firebase-admin')
admin.initializeApp(functions.config().firebase)

let db = admin.firestore()
  exports.announceMessage = functions.firestore
    .document('/myData/{documentId}')
    .onCreate((snapshot, context) => {
        let message = snapshot.data()
        sendNotification(message)
    })

function sendNotification(message) {

    let title = message.column1  
    let notification = message.column2

    let payload = {
        notification: {
            title: 'Some title: ' + title, 
            body: 'Some header: ' + notification

        },


    }

console.log(payload)
let topic = "yourTopic"
return admin.messaging().sendToTopic(topic, payload)

}
...