检测firebase中是否已存在电子邮件

时间:2016-09-24 22:19:07

标签: javascript firebase firebase-realtime-database

我的FireBase数据库中有以下内容:

Users
 -VCVVsqwws_QSds2ADC1
    email: 
      "lo@aol.com"
 -VCVxCaQ_dSwWBC21AB4
    email: 
      "asdasasd@aaa.com"

然后是.js文件中的行:

firebase.initializeApp(config);
var register = firebase.database().ref("Users");

如何在推送到Users之前检查用户是否已包含电子邮件?我尝试关注https://gist.github.com/anantn/4323949,但浏览器说无法实例化Firebase(新的Firebase),即使所有内容都已导入并包含在内。

2 个答案:

答案 0 :(得分:0)

您可以使用以下代码:

var register = firebase.database().ref("Users/{{userId}}");

register.once('value', function(snapshot) {
   if(snapshot.val().hasOwnProperty('email')) {
     console.log("Email exist.");
   }
   else {
     console.log("Email not exist.");
     /* Code to push email to the specific user */
   }
});

答案 1 :(得分:0)

如果您只需要非常快速地检查一个用户,您还可以使用以下代码(触发警告:es6)

firebase.database().ref(`Users/${userId}`)once('value').then(snapshot => {
   if(snapshot.val().hasOwnProperty('email')) {
     console.log("Email exists.");
   }
   else {
     console.log("Email doesn't exist.");
     /* Code to push email to the specific user */
   }
});

请注意,ti2005's snippet运行良好,但会加载所有用户,并且随着数据库的增长,该进程会变慢。