首页 > 解决方案 > 从 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;
          }

更具体地说,我希望有人可以阐明如何从

提前致谢。

标签: javascriptfirebasefirebase-cloud-messaginggoogle-cloud-functions

解决方案


不确定我是否理解,但无论是原生 JSdecodeURI()还是像这样的正则表达式

var encoded = "john%doe%doe%bird";
console.log(encoded.replace(/%/g, "."));


推荐阅读