【问题标题】:Removing Percent Encoding from Firebase Cloud Functions从 Firebase Cloud 函数中移除百分比编码
【发布时间】: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


    【解决方案1】:

    我不确定我是否理解,但是原生 JS decodeURI() 或像这样的正则表达式

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

    【讨论】:

    • 它适用于放入句点。我在问题中忽略的是,我用于编码的 Swift 中的方法基本上包括所有内容:空格、句点、括号、斜杠等。编码百分比编码的周期为 %20。另外,当我在控制台中运行时,结果如下: Allce.20this.20boy - 我想我想问的是,是否有更广泛的解码术语而不仅仅是一个符号?感谢您的帮助。
    • 我知道 encodeURI()decodeURI() 可以处理 URI 字符串,还有一个内置的 btoa 用于基本的身份验证标头创建?...希望对您有所帮助。祝你好运!
    猜你喜欢
    • 2021-05-30
    • 2014-01-21
    • 1970-01-01
    • 2013-01-01
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多