既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
注意:应用端使用的 firebase 配置文件(android 为 google_services.json 文件,iOS 为 GoogleService-Info.plist)和 service_account 密钥必须从 firebase 控制台为同一个项目创建。
在本文中,我们将探讨如何使用 Golang 和 Firebase 发送推送通知。
让我们跳到实施。
- 配置 Firebase 身份验证密钥
所需软件包:
firebase.google.com/go
firebase.google.com/go/messaging
使用加密格式的敏感内容总是更好。为了达到这个目的,我将服务帐户密钥以 base64 格式存储为环境变量。
在这里,FIREBASE_AUTH_KEY 包含一个 base64 编码的服务帐户密钥。
首先,让我们解码服务帐户密钥。
func getDecodedFireBaseKey() ([]byte, error) {
fireBaseAuthKey := os.Getenv("FIREBASE_AUTH_KEY")
decodedKey, err := base64.StdEncoding.DecodeString(fireBaseAuthKey)
if err != nil {
return nil, err
}
return decodedKey, nil
}
上述方法将返回解码后的服务帐户密钥,该密钥将在下一步中使用。
使用以下代码检索解码的密钥并初始化 firebase 应用程序。
decodedKey, err := getDecodedFireBaseKey()
if err != nil {
return err
}
opts := []option.ClientOption{option.WithCredentialsJSON(decodedKey)}
// Initialize firebase app
app, err := firebase.NewApp(context.Background(), nil, opts...)
if err != nil {
log.Debug("Error in initializing firebase app: %s", err)
return err
}
3.初始化firebase客户端
创建fcmClient用于消息传递(推送通知)。
fcmClient, err := app.Messaging(context.Background())
if err != nil {
return err
}
最后,让我们编写一个发送通知的代码。
4.向单个设备发送推送通知
response, err := fcmClient.Send(context.Background(), &messaging.Message{
Notification: &messaging.Notification{
Title: "Congratulations!!",
Body: "You have just implement push notification",
},
Token: "sample-device-token", // it's a single device token
})
if err != nil {
return err
}
上面的代码将向单个设备发送推送通知。
- 向多个设备发送推送通知
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新*