javascript - 从 Firebase Cloud 函数中移除百分比编码
问题描述
我当前使用的 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;
}
更具体地说,我希望有人可以阐明如何从
值
提前致谢。
解决方案
不确定我是否理解,但无论是原生 JSdecodeURI()
还是像这样的正则表达式
var encoded = "john%doe%doe%bird";
console.log(encoded.replace(/%/g, "."));
推荐阅读
- reactjs - 无法在reactjs中打印到文件
- python-3.x - python中的索引器库安装错误
- android - 自定义通知显示类似图像
- python - 无法执行 ansible playbook(未安装 libselinux python)
- python - 输入字典和字典列表并仅在存在整数时替换
- sap-gui - 信息窗口的 SAP GUI 脚本
- reactjs - npm start 在编译期间抛出错误
- java - 如何从android中的url解析json
- scikit-learn - Sklearn:线性回归
- java - 如何使用 Selenium 和 Java 定位并单击选择布尔复选框