Используя Firebase для уведомлений, получение `экземпляра приложения было незарегистрировано` - PullRequest
1 голос
/ 09 октября 2019

Попытка использовать Firebase для кроссплатформенных мобильных уведомлений. Клиентский код для получения токена устройства, похоже, работает, так как мы можем отправлять уведомления из веб-консоли Firebase. Но я не могу понять, как отправлять уведомления с нашего сервера. Мы получаем ошибку: app instance has been unregistered; code: registration-token-not-registered; details: Requested entity was not found при вызове messagingClient.Send в следующем фрагменте кода Go:

    ctx := r.Context()
    opt := option.WithCredentialsFile("serviceAccountKey.json")
    app, err := firebase.NewApp(context.Background(), nil, opt)
    if err != nil {
      return err
    }

    // Obtain a messaging.Client from the App.
    messagingClient, err := app.Messaging(ctx)
    if err != nil {
      return err
    }
    // See documentation on defining a message payload.
    message := &messaging.Message{
      Notification: &messaging.Notification{
        Title: "Notification title",
        Body:  "Notification body",
      },
      Token: myDeviceToken,
    }

    // Send a message to the device corresponding to the provided
    // registration token.
    response, err := messagingClient.Send(ctx, message)
    if err != nil {
      return err
    }

Используемый нами файл учетных данных находится в консоли Firebase, в разделе «Настройки», «Учетные записи служб», «Firebase». Admin SDK.

1 Ответ

1 голос
/ 14 октября 2019

Согласно документации для кодов ошибок FCM , регистрационный токен незарегистрированный означает:

Предоставленный регистрационный токен не зарегистрирован. Ранее действительный регистрационный токен может быть незарегистрирован по разным причинам, в том числе:

  • Клиентское приложение незарегистрировано в FCM.
  • Клиентское приложение автоматически незарегистрировано. Это может произойти, если пользователь удаляет приложение или, на iOS, если служба обратной связи APNS сообщила, что токен APNS недействителен.
  • Срок действия маркера регистрации истек. Например, Google может решить обновить маркеры регистрации или срок действия маркера APNS для устройств iOS истек.
  • Клиентское приложение было обновлено, но новая версия не настроена для приема сообщений.

Во всех этих случаях удалите этот регистрационный токен и прекратите использовать его для отправки сообщений.

Учитывая, что здесь есть несколько возможностей, мы не можем точно сказать, какой это. Если вам нужна помощь в устранении неполадок с FCM, пожалуйста, обратитесь в службу поддержки Firebase напрямую с точными шагами, которые любой может предпринять для воспроизведения проблемы.

...