Есть ли конфликт между административным узлом Firebase SDK и клиентом Firebase SDK, когда дело доходит до подписки на темы fcm? - PullRequest
1 голос
/ 31 января 2020

При подписке на консоль Firebase Topi c с использованием клиента Firebase SDK, используя:

FirebaseMessaging.getInstance().subscribeToTopic("/topics/sometopic")

Я получаю предупреждение:

'/ themes / sometopi c устарело. Только «sometopi c» следует использовать в subseToTopi c.

Однако при подписке на topi c с использованием стороны сервера Firebase Admin SDK используйте:

admin.messaging().subscribeToTopic(user.messaging_token, 'sometopic')

Я получаю предупреждение на облачном сервере о том, что

'Topi c для подписки ToTopi c () должна быть строкой, которая соответствует формату "/ themes / [a-zA- Z0-9 -_. ~%] + ". '

Если я хочу иметь возможность подписывать пользователей как со стороны клиента, так и со стороны сервера, как мне обойти это? Есть конфликт или что мне не хватает?

1 Ответ

0 голосов
/ 31 января 2020

Как на стороне клиента, так и на стороне сервера подписать пользователя на топи c, разница в том, что на стороне сервера вы можете подписать много пользователей на одну и ту же топи c:

// These registration tokens come from the client FCM SDKs.
var registrationTokens = [
  'YOUR_REGISTRATION_TOKEN_1',
  // ...
  'YOUR_REGISTRATION_TOKEN_n'
];

// Subscribe the devices corresponding to the registration tokens to the
// topic.
admin.messaging().subscribeToTopic(registrationTokens, topic)
  .then(function(response) {
    // See the MessagingTopicManagementResponse reference documentation
    // for the contents of response.
    console.log('Successfully subscribed to topic:', response);
  })
  .catch(function(error) {
    console.log('Error subscribing to topic:', error);
  });

Вам нужно использовать topi c, который не содержит /:

FirebaseMessaging.getInstance().subscribeToTopic("news")

или

admin.messaging().subscribeToTopic(user.messaging_token, 'news')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...