我正在尝试使用UID收到电子邮件。这就是我的firebase数据库的样子:
click here for picture of database
目前,这是我尝试过的,但它似乎并没有起作用。
var newEmail = '';
var database = app.database().ref('User/');
database.orderByChild().equalTo(uid).on('value', function(snapshot) {
newEmail = snapshot.val().email;
})
另外,我应该向Uid添加电子邮件,以便有一个哈希的快照ID吗?
答案 0 :(得分:0)
首先,您的参考路径不正确;在屏幕截图中,您有另一个父节点Uid
。
var newEmail = '';
var database = app.database().ref('User/Uid');
...
其次,您在不传递path参数的情况下查询orderByChild
,但无论如何您应该使用orderByKey
。但是,您不需要查询参考;你知道你想要值的快照的关键,所以你可以通过插入UID创建一个直接路径。
app.database().ref(`User/Uid/${uid}`).on('value', function(snapshot) {
newEmail = snapshot.val().email;
});
最后,你正在听取参考;如果你只需要一次值,你可以用同样的方式使用.once
函数,顾名思义就是触发一次。
app.database().ref(`User/Uid/${uid}`).once('value', function(snapshot) {
newEmail = snapshot.val().email;
});