gpt4 book ai didi

javascript - 如何从 Firebase 数据库检索数据?

转载 作者:行者123 更新时间:2023-12-02 23:57:32 25 4
gpt4 key购买 nike

我正在尝试创建一个简单的程序,该程序获取用户的姓名、手机号码和电子邮件地址,然后将数据放入 Firebase 实时数据库中。

有 3 个输入框和一个按钮,单击该按钮即可执行上述操作。这是代码:

<input type="text" id="name">
<input type="text" id="mobile">
<input type="text" id="email">

<button type="button" id="button" onclick="addLead()">Submit</button>

我已经像这样设置了 Firebase:

<script src="https://www.gstatic.com/firebasejs/3.2.0/firebase.js"></script>
<script>
// Initialize Firebase
var config = {
...
};
firebase.initializeApp(config);

var database = firebase.database();
</script>

这是我的 addLead() 函数:

function addLead() {
var clientName = document.getElementById('name').value;
var clientMobile = document.getElementById('mobile').value;
var clientEmail = document.getElementById('email').value;

var newClientKey = database.ref().child('leads').push().key;
database.ref('leads/'+newClientKey+'/name').set(clientName);
database.ref('leads/'+newClientKey+'/mobile').set(clientMobile);
database.ref('leads/'+newClientKey+'/email').set(clientEmail);
}

这就是我将数据放入数据库的方法。

enter image description here

所以 newClientKey 正在生成一些字符串,插入时效果很好,但现在如何检索? official documentation没有帮助。这个生成的字符串可能是基于时间戳的,如果是这样的话,那么再次生成它是不可能的。

检索时,我将如何访问仅在插入时可用的唯一生成的字符串下的电子邮件、手机和姓名?

按照上面的结构,我需要降低 2 个级别才能访问所需的数据,并且由于缺乏文档,我不知道如何做到这一点,我不确定这样的东西是否有效:

database.child().child();

最佳答案

这个问题的答案深藏在 Firebase Database Reference 中。forEach() 用于在不知道 child 的确切路径的情况下到达 child 。

var leadsRef = database.ref('leads');
leadsRef.on('value', function(snapshot) {
snapshot.forEach(function(childSnapshot) {
var childData = childSnapshot.val();
});
});

现在 childSnapshot 将包含所需的数据,也可以使用 child_added 访问相同的数据。

leadsRef.on('child_added', function(snapshot) {
//Do something with the data
});

唯一的区别是,在 forEach() 的情况下,它将从头开始循环,因此如果添加任何新数据,它也会加载以前的数据,但在 child_added,监听器仅针对新的子项,而不是之前存在的子项。

关于javascript - 如何从 Firebase 数据库检索数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38541098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com