Firebase 是 Google 提供的一个全面的移动和 Web 应用开发平台。它提供了后端服务如数据库、身份验证、实时数据库等。在 Firebase 中,消息令牌(也称为 FCM 令牌)用于向移动设备发送推送通知。
在 JavaScript 中注册 Firebase 时,从 Go admin 后端获取消息令牌。
在 Firebase 中,消息令牌是由客户端生成的,通常在移动设备或浏览器中生成。后端服务器需要获取这个令牌以便发送推送通知。
首先,在客户端(JavaScript)中生成 FCM 令牌:
import firebase from 'firebase/app';
import 'firebase/messaging';
if (!firebase.apps.length) {
firebase.initializeApp({
apiKey: "YOUR_API_KEY",
projectId: "YOUR_PROJECT_ID",
appId: "YOUR_APP_ID",
messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
appId: "YOUR_APP_ID"
});
}
const messaging = firebase.messaging();
messaging.requestPermission()
.then(() => {
console.log('Notification permission granted.');
return messaging.getToken();
})
.then((token) => {
console.log('FCM Token:', token);
// 将 token 发送到后端
sendTokenToServer(token);
})
.catch((err) => {
console.log('Unable to get permission to notify.', err);
});
function sendTokenToServer(token) {
fetch('/api/save-token', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ token })
})
.then(response => response.json())
.then(data => {
console.log('Token saved:', data);
})
.catch((error) => {
console.error('Error saving token:', error);
});
}
在后端(Go)中接收并保存 FCM 令牌:
package main
import (
"encoding/json"
"log"
"net/http"
)
type TokenRequest struct {
Token string `json:"token"`
}
func saveTokenHandler(w http.ResponseWriter, r *http.Request) {
var req TokenRequest
err := json.NewDecoder(r.Body).Decode(&req)
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
token := req.Token
// 保存 token 到数据库或进行其他处理
log.Println("Saved token:", token)
w.WriteHeader(http.StatusOK)
w.Write([]byte("Token saved successfully"))
}
func main() {
http.HandleFunc("/api/save-token", saveTokenHandler)
log.Fatal(http.ListenAndServe(":8080", nil))
}
通过上述步骤,你可以在 JavaScript 中生成 FCM 令牌,并将其发送到 Go 后端进行保存和处理。
领取专属 10元无门槛券
手把手带您无忧上云