如何使用swift3从ios设备触发firebase的推送通知
我是新的iOS开发人员.
我正在使用firebase,我正在尝试创建一个聊天应用程序,我需要在收到任何消息时通知用户. 解决方法
终于在挣扎了近1个月后找到了解决方案.
这些是基本步骤 >尽快确保您拥有一个活跃的Apple开发者帐户 我发现很难以确切的形式发布代码,但代码从这里开始 const functions = require('firebase-functions'); const admin =require('firebase-admin'); admin.initializeApp(functions.config().firebase); const ref=admin.database().ref(); exports.sendNotification=functions.https.onRequest((req,res) =>{ const id = req.query.id const title = req.query.title const message = req.query.message const key = req.query.key // admin.database.ref() const payload ={ notification: { title: title,body: message,//badge: '1',sound: 'default',} }; console.log('Param [key] is '+key); const keys = [] ; ref.child('keys').once('value') .then(snap => { snap.forEach(childSnap => { const loopKey=childSnap.val().key; keys.push(loopKey); }) return keys; }) .then(keys=>{ //console.log('Keys in database : '+keys.join()); if(keys.indexOf(key)>-1) { if(!key || !id || !message) { res.status(400).send('Bad request'); } else{ ref.child('users').child(id).child('fcmToken').once('value') .then(snapshot => { if (snapshot.val()){ const token = snapshot.val() console.log(token); return admin.messaging().sendToDevice(token,payload).then(response =>{ res.status(200).send('Notification sent') }); } }); } } else { console.log("In-valid key : "+key); res.status(400).send('Bad request'); } }) .catch(error => { res.send(error) }); }); 在这一点结束 这是将fcm存储到数据库的功能 func postToken(token: String,id: String){ print("FCM Token (token)") let ref = Database.database().reference().child("users").child(id) ref.child("fcmToken").setValue(token) } 这是我用来触发这个API的函数 func sendNotification(id: String,title: String,message: String){ var url = "your URL" var urlComponents = NSURLComponents(string: url) urlComponents?.queryItems = [ URLQueryItem(name: "key",value: self.apiKey),URLQueryItem(name: "id",value: id),URLQueryItem(name: "title",value: title),URLQueryItem(name: "message",value: message) ] Alamofire.request((urlComponents?.url)!).responseJSON { (response) in print(response.response) print(response.response) print(response.result) } } 上面的API是根据我的数据库结构编写的.您可以轻松地为自己的结构更改它. 完成此操作后,您将能够在点击URL后发送通知 希望它会给你一个好主意,让你根据自己的需要使用自己的通知. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |