Push Notifications (FCM)
core.IPusher — Firebase Cloud Messaging over firebase-admin v4.
Setup
Build from a service-account JSON (e.g. the FIREBASE_CREDENTIAL env value):
go
pusher, err := core.NewPusher(env.Config().FirebaseCredential)Sending
go
// single device
err := pusher.Send(deviceToken, core.PushMessage{
Title: "New message",
Body: "You have a new message",
Data: map[string]string{"chat_id": "c1"},
})
// many devices at once
res, err := pusher.SendMulticast(tokens, core.PushMessage{
Title: "Sale",
Body: "50% off today",
})
// res.SuccessCount, res.FailureCountTypes
go
type PushMessage struct {
Title string
Body string
Data map[string]string
}
type BatchResult struct {
SuccessCount int
FailureCount int
}
type IPusher interface {
Send(token string, msg PushMessage) IError
SendMulticast(tokens []string, msg PushMessage) (*BatchResult, IError)
}