【发布时间】:2017-09-11 01:52:33
【问题描述】:
所以我是 Firebase 数据库的新手,我喜欢它的地方是我不必构建一个完整的后端来存储一些简单的数据。我想做的是将数据推送到我喜欢从 firebase 接收的数组中。然后,我想检查填写的电子邮件是否包含在 firebase 数据库的数据中。但是因为它是 firebase 并且它有多个数组、对象等,所以我不知道如何检查。所以流程是:用户填写数据,应用程序调用 firebase 数据库,应用程序正在从 firebase 检索当前数据。然后应用程序将检查输入的数据是否已经存在,如果存在,将发出数据已在数据库中的警报。否则,将提交数据。
另外,我想知道这是否是从数据库中检索数据的正确方法:
Main.js
function writeUserData() {
var name = document.getElementById("name").value;
var email = document.getElementById("email").value;
firebase.database().ref('/aanmeldingen/').push({
username: name,
email: email,
});
var dbRef = firebase.database().ref().child('/aanmeldingen/');
dbRef.on('value', snapshot => {
const snap = snapshot.val();
const array = [];
array.push(snap);
console.log(array);
const res = array.includes(email);
console.log(res);
console.log(email);
});
}
控制台输出
如您所见,这会返回多个数据。包含功能将检查提交的电子邮件地址。即使我输入了“info@webpack.com”,这也会返回 false。如何检查正确的数据对象?如果提交的电子邮件地址已经存在,它必须检查“0”下的所有对象并在控制台中返回。
【问题讨论】:
-
当您进行推送时,Firebase 似乎应该返回一个对象,我希望它包含您以后可以用来引用它的条目的 ID(即您看到的有趣字符串当您稍后读取数据时)检查它们是否在数据库中。否则,您将进行不同的查询以检查是否存在具有“电子邮件”键的特定值的记录。
标签: javascript arrays firebase firebase-realtime-database