javascript - 如何将变量传递给 URL?

标签 javascript typescript firebase

我正在尝试发送一封电子邮件,其正文中包含一个链接,其中包含从 Firebase 检索到的值。我成功检索了该值,但我不知道如何将其附加到已列出的链接中。 这是代码:

sendinvite() {
      var user = firebase.auth().currentUser;
      var uid = user.uid;

      firebase.database().ref('/userlist/' + uid + '/' + 'hashKey').once('value').then(function(snapshot) {
        var hashKey = (snapshot.val());
        console.log(hashKey)
      });

      var bcc = [];
      for(var e in this.emailinputs){
        if (this.emailinputs[e].email==null || this.emailinputs[e].email=="" || !this.emailinputs[e].email.includes("@") || !this.emailinputs[e].email.includes("."))
        {
          let alert = this.alerCtrl.create({
            title: 'Error!',
            message: 'There was an error with an email address you entered.',
            buttons: ['Ok']
          });
          alert.present()
        }else {
          bcc.push(this.emailinputs[e].email);
        }
      }
      if(bcc.length > 0) {
        let email = {
          bcc: bcc,
          subject: 'Nudget Invite',
          body: '<a href="https://nudget-72ee4.firebaseapp.com/?hashkey='+hashKey+'">Join my grocery list!</a>',
          isHtml: true
        };
        this.emailComposer.open(email);
      }
}

我希望将变量 hashKey 附加到正文中列出的 URL,但我不确定如何实现此目的。

编辑 1

更新了主体以将变量附加到字符串中。我不确定可以将 Firebase 中的哈希键放在哪里以便正确引用它。

最佳答案

我看到的主要问题是您将“hashkey”变量的范围限定为 firebase...function(snapshot) block 。这应该定义在顶部“uid”变量附近,以便所有这些代码都可以引用它。

然后在快照函数中,删除 hashkey 前面的“var”,这样它就只设置现有变量。

此外,在发送电子邮件之前,请务必检查“hashkey”是否具有非空值。

HTH, 吉姆

关于javascript - 如何将变量传递给 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47623508/

相关文章:

javascript - React 中奇怪的语法错误

javascript - Firefox 源代码中的主事件循环在哪里?

android - 设备离线时不发送显示消息,设备上线时发送显示消息 firebase firestore

java - 使用 Firestore 获取我关注的人的帖子

javascript - 在两点之间绘制圆弧

javascript - typescript 表格重置()不起作用

javascript - TypeScript 类 .drawImage

不排除 Typescript 联合类型

android - Cocos2d Firebase Admob 崩溃

javascript - 使用 Google Charts API 使图表保持白色