Родной скрипт | Firebase уведомление не работает - PullRequest
0 голосов
/ 29 августа 2018

У меня проблема с использованием firebase в моем приложении Nativescript, когда я использую Android, он прекрасно работает, но не работает с IOS. проблема в отправке сообщений. Я использую push-плагин на стороне клиента

Это часть регистра на стороне клиента IOS, использующая pushPlugin

const iosSettings:any = {
        badge: true,
        sound: true,
        alert: true,
        interactiveSettings: {
            actions: [{
                identifier: 'READ_IDENTIFIER',
                title: 'Read',
                activationMode: "foreground",
                destructive: false,
                authenticationRequired: true
            }, {
                identifier: 'CANCEL_IDENTIFIER',
                title: 'Cancel',
                activationMode: "foreground",
                destructive: true,
                authenticationRequired: true
            }],
            categories: [{
                identifier: 'READ_CATEGORY',
                actionsForDefaultContext: ['READ_IDENTIFIER', 'CANCEL_IDENTIFIER'],
                actionsForMinimalContext: ['READ_IDENTIFIER', 'CANCEL_IDENTIFIER']
            }]
        },
        notificationCallbackIOS: (message: any) => {
            alert(JSON.stringify(message));
        }
    };


    pushPlugin.register(iosSettings, (token: string) => {
        // update the token in the server
        alert("Device registered. Access token: " + token);
            });
        }
    }, (errorMessage: any) => {
        alert("Device NOT registered! " + JSON.stringify(errorMessage));
    });

Вот так я получаю свой токен на push-уведомление, после получения токена, когда я использую приложение-толкач, все работает отлично, я получаю уведомление на устройстве IOS но проблема в том, когда я пытаюсь отправить уведомление с сервера!

Я получаю эту ошибку:

Указан неверный регистрационный токен. Убедитесь, что это соответствует регистрационный токен, который клиентское приложение получает от регистрации в FCM.

Код узла на моем сервере

        var payload = {
        data: {
          targetId:userToken,
          body: "some text"
        }
      };
    var options = {
        priority: "high",
        contentAvailable: true,
        timeToLive: 60 * 60 * 24
      };
    Admin.messaging().sendToDevice(userToken, <any>payload,options)
        .then((response) => {
            console.log('notification arrived successfully', response.results[0]);
        })
        .catch((error) => {
            console.log('notification failed', error);
        });

1 Ответ

0 голосов
/ 30 августа 2018

регистрационный токен для ios не совпадает для android. Я столкнулся с той же стеной, с которой вы столкнулись. Вам нужно использовать https://github.com/node-apn/node-apn для push-уведомлений IOS. и firebase для уведомления Android. Вы можете сделать логику на вашем бэкэнде, сохранив токен. с полем с именем type, которое равно ios or android, если ios вы используете node-apn и если android использует sendToDevice, предоставленное firebase.

Это то, что я сейчас использую с моими текущими проектами на нативном скрипте. Я работаю над этим, что включает push-уведомление. Надеюсь, это поможет тебе, приятель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...