Skip to content

Commit 6d5ca22

Browse files
Merge branch 'master' into refactor-batch-response
2 parents 276fd53 + 387f11a commit 6d5ca22

File tree

12 files changed

+1903
-7
lines changed

12 files changed

+1903
-7
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
strategy:
99
fail-fast: false
1010
matrix:
11-
python: ['3.8', '3.9', '3.10', '3.11', '3.12', 'pypy3.8']
11+
python: ['3.8', '3.9', '3.10', '3.11', '3.12', 'pypy3.9']
1212

1313
steps:
1414
- uses: actions/checkout@v4

firebase_admin/__about__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
"""About information (version, etc) for Firebase Admin SDK."""
1616

17-
__version__ = '6.6.0'
17+
__version__ = '6.7.0'
1818
__title__ = 'firebase_admin'
1919
__author__ = 'Firebase'
2020
__license__ = 'Apache License 2.0'

firebase_admin/_messaging_encoder.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,9 @@ def encode_android_notification(cls, notification):
319319
'visibility': _Validators.check_string(
320320
'AndroidNotification.visibility', notification.visibility, non_empty=True),
321321
'notification_count': _Validators.check_number(
322-
'AndroidNotification.notification_count', notification.notification_count)
322+
'AndroidNotification.notification_count', notification.notification_count),
323+
'proxy': _Validators.check_string(
324+
'AndroidNotification.proxy', notification.proxy, non_empty=True)
323325
}
324326
result = cls.remove_null_values(result)
325327
color = result.get('color')
@@ -363,6 +365,13 @@ def encode_android_notification(cls, notification):
363365
'AndroidNotification.vibrate_timings_millis', msec)
364366
vibrate_timing_strings.append(formated_string)
365367
result['vibrate_timings'] = vibrate_timing_strings
368+
369+
proxy = result.get('proxy')
370+
if proxy:
371+
if proxy not in ('allow', 'deny', 'if_priority_lowered'):
372+
raise ValueError(
373+
'AndroidNotification.proxy must be "allow", "deny" or "if_priority_lowered".')
374+
result['proxy'] = proxy.upper()
366375
return result
367376

368377
@classmethod

firebase_admin/_messaging_utils.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,14 +137,18 @@ class AndroidNotification:
137137
If ``default_light_settings`` is set to ``True`` and ``light_settings`` is also set, the
138138
user-specified ``light_settings`` is used instead of the default value.
139139
visibility: Sets the visibility of the notification. Must be either ``private``, ``public``,
140-
or ``secret``. If unspecified, default to ``private``.
140+
or ``secret``. If unspecified, it remains undefined in the Admin SDK, and defers to
141+
the FCM backend's default mapping.
141142
notification_count: Sets the number of items this notification represents. May be displayed
142143
as a badge count for Launchers that support badging. See ``NotificationBadge``
143144
https://developer.android.com/training/notify-user/badges. For example, this might be
144145
useful if you're using just one notification to represent multiple new messages but you
145146
want the count here to represent the number of total new messages. If zero or
146147
unspecified, systems that support badging use the default, which is to increment a
147148
number displayed on the long-press menu each time a new notification arrives.
149+
proxy: Sets if the notification may be proxied. Must be one of ``allow``, ``deny``, or
150+
``if_priority_lowered``. If unspecified, it remains undefined in the Admin SDK, and
151+
defers to the FCM backend's default mapping.
148152
149153
150154
"""
@@ -154,7 +158,8 @@ def __init__(self, title=None, body=None, icon=None, color=None, sound=None, tag
154158
title_loc_args=None, channel_id=None, image=None, ticker=None, sticky=None,
155159
event_timestamp=None, local_only=None, priority=None, vibrate_timings_millis=None,
156160
default_vibrate_timings=None, default_sound=None, light_settings=None,
157-
default_light_settings=None, visibility=None, notification_count=None):
161+
default_light_settings=None, visibility=None, notification_count=None,
162+
proxy=None):
158163
self.title = title
159164
self.body = body
160165
self.icon = icon
@@ -180,6 +185,7 @@ def __init__(self, title=None, body=None, icon=None, color=None, sound=None, tag
180185
self.default_light_settings = default_light_settings
181186
self.visibility = visibility
182187
self.notification_count = notification_count
188+
self.proxy = proxy
183189

184190

185191
class LightSettings:

firebase_admin/db.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,7 @@ def _listen_with_session(self, callback, session=None):
467467
session = self._client.create_listener_session()
468468

469469
try:
470-
sse = _sseclient.SSEClient(url, session)
470+
sse = _sseclient.SSEClient(url, session, **{"params": self._client.params})
471471
return ListenerRegistration(callback, sse)
472472
except requests.exceptions.RequestException as error:
473473
raise _Client.handle_rtdb_error(error)

0 commit comments

Comments
 (0)