【发布时间】:2020-08-11 04:51:39
【问题描述】:
我正在尝试使用 swift、node.js 和 firebase 函数向 firebase 发送推送通知。我可以成功推送我的一些通知,但是我很难处理我的消息。
我的 firebase 函数看起来像,
我在 node.js 中的函数看起来像,
exports.observeMessages = functions.database.ref('/messages/{fromId}/{toId}').onCreate((snapshot, context) => {
const fromId = snapshot.val().fromId;
const toId = snapshot.val().toId;
console.log('LOGGER --- uid is ' + fromId);
console.log('LOGGER --- workerId is ' + toId)
})
这些消息存储在 firebase 中,
我已尝试使用
发送这些推送通知 var toId = context.params.toId;
var fromId = context.params.fromId;
当我在我的 node.js 代码中发布后者时,我看到了
下面是我如何将消息信息发送到 firebase
fileprivate func sendMessageWithProperties(_ properties: [String: Any]) {
let ref = Database.database().reference().child("messages")
let childRef = ref.childByAutoId()
let toId = user!.uid!
let fromId = Auth.auth().currentUser!.uid
let timestamp = Int(Date().timeIntervalSince1970)
var values: [String: Any] = ["toId": toId, "fromId": fromId, "timestamp": timestamp, "checked": 0]
properties.forEach({values[$0] = $1})
childRef.updateChildValues(values) { (error, ref) in
if error != nil {
print(error!)
return
}
self.inputContainerView.inputTextField.text = nil
guard let messageId = childRef.key else { return }
let userMessagesRef = Database.database().reference().child("user-messages").child(fromId).child(toId).child(messageId)
userMessagesRef.setValue(1)
let recipientUserMessagesRef = Database.database().reference().child("user-messages").child(toId).child(fromId).child(messageId)
recipientUserMessagesRef.setValue(1)
}
}
【问题讨论】:
标签: node.js swift firebase-realtime-database google-cloud-functions