From 32af2b8141bddb7230dd4db7e6612703f2dfc25b Mon Sep 17 00:00:00 2001 From: Lahiru Maramba Date: Thu, 22 Jun 2023 18:05:56 -0400 Subject: [PATCH 1/3] [chore] Release 4.12.0 (#561) - Release 4.12.0 --- firebase.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firebase.go b/firebase.go index a06829b1..fb3b0b47 100644 --- a/firebase.go +++ b/firebase.go @@ -39,7 +39,7 @@ import ( var defaultAuthOverrides = make(map[string]interface{}) // Version of the Firebase Go Admin SDK. -const Version = "4.11.0" +const Version = "4.12.0" // firebaseEnvName is the name of the environment variable with the Config. const firebaseEnvName = "FIREBASE_CONFIG" From 02300a8e865290c35d0ff92ff241ee38ccd814a7 Mon Sep 17 00:00:00 2001 From: Lahiru Maramba Date: Tue, 11 Jul 2023 12:21:57 -0400 Subject: [PATCH 2/3] Revert "[chore] Release 4.12.0 (#561)" (#565) This reverts commit 32af2b8141bddb7230dd4db7e6612703f2dfc25b. --- firebase.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firebase.go b/firebase.go index fb3b0b47..a06829b1 100644 --- a/firebase.go +++ b/firebase.go @@ -39,7 +39,7 @@ import ( var defaultAuthOverrides = make(map[string]interface{}) // Version of the Firebase Go Admin SDK. -const Version = "4.12.0" +const Version = "4.11.0" // firebaseEnvName is the name of the environment variable with the Config. const firebaseEnvName = "FIREBASE_CONFIG" From 6381676372d8c2c0a5d29ceb51b1b4a1233678f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Leiva?= Date: Thu, 27 Nov 2025 14:15:44 -0500 Subject: [PATCH 3/3] feat: add support for InterruptionLevel in iOS notifications --- messaging/messaging.go | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/messaging/messaging.go b/messaging/messaging.go index 8f484684..9c9be7ec 100644 --- a/messaging/messaging.go +++ b/messaging/messaging.go @@ -721,16 +721,17 @@ func (p *APNSPayload) UnmarshalJSON(b []byte) error { // Alert may be specified as a string (via the AlertString field), or as a struct (via the Alert // field). type Aps struct { - AlertString string `json:"-"` - Alert *ApsAlert `json:"-"` - Badge *int `json:"badge,omitempty"` - Sound string `json:"-"` - CriticalSound *CriticalSound `json:"-"` - ContentAvailable bool `json:"-"` - MutableContent bool `json:"-"` - Category string `json:"category,omitempty"` - ThreadID string `json:"thread-id,omitempty"` - CustomData map[string]interface{} `json:"-"` + AlertString string `json:"-"` + Alert *ApsAlert `json:"-"` + Badge *int `json:"badge,omitempty"` + Sound string `json:"-"` + CriticalSound *CriticalSound `json:"-"` + ContentAvailable bool `json:"-"` + MutableContent bool `json:"-"` + InterruptionLevel InterruptionLevel `json:"interruption-level,omitempty"` + Category string `json:"category,omitempty"` + ThreadID string `json:"thread-id,omitempty"` + CustomData map[string]interface{} `json:"-"` } // standardFields creates a map containing all the fields except the custom data. @@ -858,6 +859,23 @@ func (cs *CriticalSound) UnmarshalJSON(b []byte) error { return nil } +// InterruptionLevel indicates the importance and delivery timing of a notification. Available on iOS 15+. +type InterruptionLevel string + +const ( + // InterruptionLevelActive presents notifications immediately, lights up the screen, and can play a sound. + InterruptionLevelActive InterruptionLevel = "active" + + // InterruptionLevelCritical presents the notification immediately, lights up the screen, and bypasses the mute switch to play a sound. + InterruptionLevelCritical InterruptionLevel = "critical" + + // InterruptionLevelPassive adds the notification to the notification list without lighting up the screen or playing a sound. + InterruptionLevelPassive InterruptionLevel = "passive" + + // InterruptionLevelTimeSensitive presents the notification immediately, lights up the screen, can play a sound, and breaks through system notification controls. + InterruptionLevelTimeSensitive InterruptionLevel = "time-sensitive" +) + // ApsAlert is the alert payload that can be included in an Aps. // // See https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/PayloadKeyReference.html