Flutter: Firebase Pushnotification при изменении данных - PullRequest
0 голосов
/ 03 июня 2018

После получения комментария я развернул следующий код в своем проекте Firebase, и он был успешно развернут!. Но мне не было отправлено никаких уведомлений.Пожалуйста, проверьте мой скриншот базы данных Firebase в реальном времени здесь для лучшего понимания.

[ЕГО РЕШЕНО СЕЙЧАС: ОТПРАВЛЯЕТСЯ ТОЛЬКО ОДИН ИД, т.е. МОЕ АДМИНИСТРАТОР]

РАБОЧИЙ КОД:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firbase);
exports.codeformypeople = functions.database.ref('items/{id}').onWrite(evt => {

const payload = {
notification: { title: 'New Customer Requested', body: 'Touch to Open The App', badge: '1', sound: 'default', }
};
const token ="Lsn-bHfBWC6igTfWQ1-h7GoFMxaDWayKIpWCrzC";//replace with ur token

if (token) {
console.log('Toke is availabel .');
return admin.messaging().sendToDevice(token, payload);
} else {
console.log('token error');
}
});

[Mydatabase Structure[1]

СМОТРИТЕ ЭТУ ВИДЕОСИГНАЛ ДЛЯ БОЛЬШЕ ДЕТАЛЕЙ

примечание: если ваше приложение открыто и свернуто, то оно будет отображать уведомление, но еслиприложение открыто и вы используете, или если приложение закрывается принудительно, то оно не будет работать !!

1 Ответ

0 голосов
/ 03 июня 2018

Вы можете использовать облачную функцию Firebase для запуска уведомления.Вот фрагмент облачных функций, которые я использую для запуска уведомлений:

const functions = require('firebase-functions');

const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.pushNotification = functions.database.ref('/Notifications/{pushId}')
 .onWrite(( change,context) => {
    console.log("Push Notification event triggered");
    var request = change.after.val();
    var payload = {
        data:{
            username: request.userName,
        }
    };
    admin.messaging().sendToDevice(request.userTokenId, payload)
    .then(function(response){
        console.log("Successfully sent message: ",response);
        console.log(response.results[0].error);
    })
    .catch(function(error){
        console.log("Error sending message: ", error)
    })
 })

Ниже я предоставил свою структуру уведомлений, вы можете увидеть ниже. Эта функция будет запускаться, если какие-либо новые данные выдвигаются в уведомлении базы данных.узел.Чтобы увидеть, что вывод / ошибка вы получаете, когда эта функция запускается, перейдите в админ панель firebase> Функции> Журналы.

enter image description here

Вы развернули функциюкод идеально, но вы забыли добавить обновление tokenId в вашу базу данных, как вы можете видеть на картинке выше, я сохраняю userTokenId в своей базе данных и в функции admin.messaging().sendToDevice(request.userTokenId, payload) я использую этот tokenId, этот tokenId используется для отправки уведомлений конкретномуустройство, вы можете получить этот tokenId с помощью FirebaseInstanceId.getInstance().getToken() и сохранить его в вашей структуре fbproject1 > items базы данных.пожалуйста, отошлите это & это

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