【发布时间】:2018-08-07 19:08:18
【问题描述】:
我当前使用的 firebase 函数从数据库中的某个分支检索数据,其中值可能有也可能没有百分比编码。该值是用户的用户名,如果有“。”,则对其进行编码。在名字里。当用户收到通知时,它的正文中有他们的名字,我试图弄清楚如何在必要时删除PercentEncoding。我的云功能:
exports.newPost = functions.database.ref('/{school}/posts').onWrite((change, context) => {
const school = context.params.school
const postUsername = admin.database().ref('/{school}/lastPost/lastPostUser').once('value')
var db = admin.database();
var val1, val2;
db.ref(`/Herrick Middle School/lastPost/lastPostUser`).once('value').then(snap => {
val1 = snap.val();
console.log(snap.val());
return val1
}).then(() => {
return db.ref("test2/val").once('value');
}).catch(err => {
console.log(err);
});
return loadUsers().then(users => {
let tokens = [];
for (let user of users) {
tokens.push(user.pushToken);
console.log(`pushToken: ${user.pushToken}`);
}
let payload = {
notification: {
title: school,
body: `${val1} just posted something.`,
sound: 'Apex',
badge: '1'
}
};
return admin.messaging().sendToDevice(tokens, payload);
});
});
function loadUsers() {
let dbRef = admin.database().ref('/Herrick Middle School/regisTokens');
let defer = new Promise((resolve, reject) => {
dbRef.once('value', (snap) => {
let data = snap.val();
let users = [];
for (var property in data) {
users.push(data[property]);
console.log(`data: ${property}`);
}
resolve(users);
}, (err) => {
reject(err);
});
});
return defer;
}
更具体地说,我希望有人能阐明如何从
中删除编码值
提前致谢。
【问题讨论】:
标签: javascript firebase firebase-cloud-messaging google-cloud-functions