Skip to content

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.FailureCount

Types

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)
}

Maintained by Passakon Puttasuwan & Dev Core Team.