我试图发送一封电子邮件,其中包含从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
附加到正文中列出的网址,但我不确定如何实现此目标。
修改1
更新了主体以将变量附加到字符串。我不确定在哪里可以放置来自Firebase的哈希键,以便正确引用它。
答案 0 :(得分:0)
我看到的主要问题是你将'hashkey'变量仅限于firebase ... function(快照)块。这应该在'uid'变量附近的顶部定义,以便所有这些代码都可以引用它。
然后在你的快照函数中,删除hashkey前面的'var',所以它只是设置现有的变量。
另外,在发送电子邮件之前,请务必检查'hashkey'是否具有非空值。
HTH, 吉姆
答案 1 :(得分:0)
我认为问题在于:
firebase.database().ref('/userlist/' + uid + '/' + 'hashKey').once('value').then(function(snapshot) {
var hashKey = (snapshot.val());
console.log(hashKey)
});
您正在匿名函数中创建名为var
的{{1}},然后尝试访问该函数之外的hashKey
。
请尝试以下方法:
hashKey