ios - firestore 云消息传递 iOS Swift

标签 ios swift google-cloud-firestore firebase-cloud-messaging

我无法将新记录条目添加到我的 firestore 文档数据库中以向用户生成警报。

  1. iOS 应用可以毫无问题地获取和更新 Firestore 数据
  2. 如果我从 Firebase 手动发送消息,我的应用程序不会出现任何问题
  3. 我可以将云函数部署到 firebase,不会出现任何错误

我做错了什么?谢谢你的帮助。

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) 

}

最佳答案

这就是我所做的并且有效。请记住,您的 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)

}

关于ios - firestore 云消息传递 iOS Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54298072/

相关文章:

iOS View 在 addSubview 上重置

ios - Alamofire 授权 POST

ios - 应用程序恢复后 URLSession 代表不工作

ios - 子集合的 Firestore 监听器

ios - 无法使用 NSData :dataWithBytesNoCopy 进行复制

ios - 是否有任何框架/库可用于为我的 iOS 应用程序实现 "take a tour"功能

swift -++ 在 Swift 中到底是什么意思?

ios - 实例方法 'mapView(_:didFailToLocateUserWithError:)'几乎符合可选要求

android - 使用 AND 的 Firestore 查询链接

java - 字段上的 Firestore 查询顺序与不同字段上的过滤器