Вот мой код:
const deviceToken = admin.database().ref(`/users/{sender_user_id}/token_id`).once('value');
return deviceToken.then(result => {
const token_id = result.after.data();
const payload = {
notification: {
title: "New message!",
body: "You have a new message!",
icon: "default"
}
};
return admin.messaging().sendToDevice(token_id, payload).then(response => {
return console.info('This was a notification');
});
});
});
И я получаю эту ошибку:
TypeError: Cannot read property 'data' of undefined at deviceToken.then.result (/srv/index.js:14:33)
Я должен получить идентификатор токена устройства от пользователей. Как бы я это сделал?
узел --версия: v12.4.0 нпм --версия: 6.9.0
Метод once
внутри firebase.database.Reference
возвращает Promise<DataSnapshot>
. Класс admin.database.DataSnapshot
не содержит свойства с именем after
. Если вы пытаетесь получить token
из базы данных, измените следующее:
return deviceToken.then(result => {
const token_id = result.after.data();
в это:
return deviceToken.then(result => {
const token_id = result.val();
Из документов:
Extracts a JavaScript value from a DataSnapshot.
Depending on the data in a DataSnapshot, the
val()
method may return a scalar type (string, number, or boolean), an array, or an object. It may also return null, indicating that theDataSnapshot
is empty (contains no data).
Что вы получите, когда запустите console.info(результат)?