首页 > 其他分享 >Go 中使用 Firebase 云消息传递的 Web 推送通知

Go 中使用 Firebase 云消息传递的 Web 推送通知

时间:2022-09-20 11:35:37浏览次数:97  
标签:Web 令牌 firebase Firebase 消息传递 推送 客户端

Go 中使用 Firebase 云消息传递的 Web 推送通知

关于网络推送通知,最近因为下雨不能出门而沉迷其中 @_tetsuya28 我将简要总结一下。

这次,我将介绍一个从 Go 发送 Web 推送通知的示例,如下所示。

什么是 Firebase 云消息传递

通过使用 Firebase 的 Cloud Messaging,您可以发送网络推送通知,Instagram 和 YouTube 也使用这些通知。
https://firebase.google.com/docs/cloud-messaging

流程直到发送推送通知

在客户端发出令牌→将令牌存储在服务器端→从服务器端向 Firebase 发出消息

使用 React 注册客户端

火力基地 v9 ( @firebase/消息 @0.9.16 ) 用于 Firebase 云消息传递令牌的客户端发行。

在客户端,使用下面的代码为每个客户端生成一个 Firebase 云消息传递令牌。

 从“firebase/messaging”导入 { getMessaging, getToken } const app = initializeApp(firebaseConfig)  
 常量消息 = getMessaging(app)  
 const fcm_token = 等待 getToken(消息,{  
 vapidKey: "****",  
 })  
 控制台日志(fcm_token)

然后使用来自客户端的某种方法(例如 API)将令牌保存在服务器端。此处保存的令牌必须在适当的时候更新。
https://firebase.google.com/docs/cloud-messaging/manage-tokens

本文假设上述令牌存储在服务器端。

使用 Go 发送通知

这是一次向多个设备(用户)发送通知的示例。
https://firebase.google.com/docs/cloud-messaging/send-message

  1. 初始化火力基地

    # 进口 (

    火力基地“firebase.google.com/go”

    ) 应用程序,错误:= firebase.NewApp(context.TODO(), &firebase.Config{})

    如果错误!= nil {
    日志打印(错误)
    }

2. 初始化云消息

 客户端,错误:= app.Messaging(context.TODO())  
 如果错误!= nil {  
 日志打印(错误)  
 }

3. 创建消息

WebpushFcmOptions.Link https 通过设置 的链接,可以设置点击推送通知时的链接跳转。

代币 对于 ,将每个客户端生成的 Firebase 云消息传递令牌设置为字符串数组。

 消息 := &messaging.MulticastMessage{  
 代币:代币,  
 通知:通知,  
 网络推送:&messaging.WebpushConfig{  
 FcmOptions: &messaging.WebpushFcmOptions{  
 链接:“https://example.com”,  
 },  
 },  
 }

4. 发送消息

 br, err := client.SendMulticast(context.TODO(), message)  
 如果错误!= nil {  
 日志打印(错误)  
 }

其他

如果您对本文有任何问题或意见 @_tetsuya28 请随时通过 DM 与我们联系。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/38142/27342011

标签:Web,令牌,firebase,Firebase,消息传递,推送,客户端
From: https://www.cnblogs.com/amboke/p/16710476.html

相关文章

  • Web大文件上传解决方案实例代码
    ​总结一下大文件分片上传和断点续传的问题。因为文件过大(比如1G以上),必须要考虑上传过程网络中断的情况。http的网络请求中本身就已经具备了分片上传功能,当传输的文件比较......
  • 2022年9月19日测试 Webstorm永久2022.2最新激活码 破解 账号一年 教育授权学生账号注
    正版激活,一人一码,告别破解(破解有代码风险!使环境运行变慢!)在文档中间位置获取“本教程中激活插件文件均收集于互联网公开免费资源,仅用于学习交流,请勿用于一切商用用途。侵......
  • 第5章 Spring Boot实现Web的常用功能
    在Web开发中,会涉及到静态资源的访问支持、视图解析器的配置、转换器和格式化器的定制、文件上传下载等功能,甚至还需要考虑到与Web服务器关联的Servlet相关组件的定制,Spring......
  • webpack入门讲解
    本文将介绍webpack的作用、入门使用,以及webpack打包原理模块开发javascript诞生之初,就是服务于网页的脚本语言,相较于c++,java等缺少模块开发功能。在不使用webpack工具,jav......
  • 修改WebBrowser控件的内核解决方案
    首先说一下原理当下很大浏览器他们都是用了IE的core,这个core只提供HTML/JS的执行和渲染,并没有给出关于界面和一些特性上的事,所以开发自己浏览器如果基于IEcore需要自己......
  • Delphi WebBrowser控件的使用中出现的bug
     1、WebBrowser.Visible=false;Visible属性不能使WebBrowser控件不可见,暂时用 WebBrowser.Hide的方法代替,WebBrowser.Hide隐藏浏览器, WebBrowser.Show显示浏览器;   ......
  • Delphi中WebBrowser控件打开部分网站报"Invalid floating point operation”解决
    最近用EmbeddedWB控件做浏览器相关应用的时候,发现有些网页只要一打开就一定会蹦出一个“Invalidfloatingpointoperation”异常(关掉异常对话框以后,浏览器无响应),而程序仅......
  • Delphi中TWebBrowser中注入Js
    最近帮朋友做一个软件,其中要自动化某网页中的操作,最简的操作是调用自己写的代码。代码如下:procedureTForm1.Button2Click(Sender:TObject);var i:integer; h:IHTML......
  • Delphi WebBrowser控件
    WebBrowser控件属性:1、Application如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDispatch)。如果在宿主对象中自动化对象无效,程序将返回WebB......
  • odoo15接口调用qweb打印,将pdf旋转并下载到本地
    一、将pdf旋转的通用方法defrotate_pdf(self,pdf,angle):"""rotateClockwise(90)这里的pdf传:bytes类型这里的angel:......