Firebase admin Ошибка FCM: Требуется только одно из темы, токена или условия
Я интегрировал fcm-django==1.0.5
с firebase-admin==5.0.2
в свой проект.
Отправка push-уведомлений по user_id работает отлично, с другой стороны, отправка сообщений в тему дает такую ошибку:
File "project_name/.venv/lib/python3.8/site-packages/firebase_admin/_messaging_encoder.py", line 681, in default
raise ValueError('Exactly one of token, topic or condition must be specified.')
ValueError: Exactly one of token, topic or condition must be specified.
Я попытался решить эту проблему и пришел к этому ответу , в котором говорится "Избегайте отправки пустого fcm-токена в Firebase. Когда мы отправляем пустой fcm-токен, Firebase выдает нам следующую ошибку"
для этого я даже перечислил токены регистраций, они не пустые.
from fcm_django.models import FCMDevice
>>> list(FCMDevice.objects.all().values('registration_id'))
[{'registration_id': 'dVA1234XtoEdxk0i9J6srWM:APA91bHM3EBHkLYTIR2wAkop28Kn4RmI0HouifDazT7zCU5MXDIvrbVvzpZC3YiKDoDR9Wj-2DJ-d4_yPIhSfe_XU7Ac8QB2PXcOFOxwLRp3AGCLM18NVQz_N5NLQqFmIaArB'}, {'registration_id': 'ekpeG8fKTzWKANLA4UtIDV:APA91bFKkc32o4ke85iMfMqOIylY9zo599eTBHJNlWFxUA52PtAFBC3RlAIPTZ5P4578-OY6Iy1jGjGh3irgcGnXC3f6YHN3nrsrvU7N7A2VVssN9uPLWM55N7Kn5EVk8oyz'}]
Я разместил оператор печати в виртуальной среде для отладки этой проблемы, и в выводе я вижу, что и токен, и название передаются, хотя я не отправляю токен, но он принимает его автоматически.
Мой код для отправки сообщений пользователя в тему:
def send_user_messages_to_topic(topic_name,title=None,body=None,image=None,data=None,
extra_notification_kwargs=None,api_key=None,**kwargs):
# print(topic_name, title, body, data, image)
# Subscribing
# FCMDevice.objects.all().handle_topic_subscription(True, topic=topic_name)
# Sending messages to topic
result = FCMDevice.objects.all().send_message(
Message(
notification=Notification(title=title,body=body,image=image),
topic=topic_name,
data=data,
)
)
Я недавно обновился до fcm-django--1.0.5, это проблема с библиотекой или есть способ ее решить?