外文文献检索数据库:如何从Firebase数据库中检索数据

关于外文文献检索数据库的问题,在firebase data中经常遇到, 我试图创建一个简单的程序,从用户获取姓名,手机号码和电子邮件地址,然后将数据放在 Firebase 实时数据库上。

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

有 3 个输入框和一个按钮,点击上面的操作。

<input type="text" id="name">
<input type="text" id="mobile">
<input type="text" id="email">
<on type="on" id="on" onclick="addLead()">Submit</on>

我已经像这样设置了 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 newKey = database.ref().child('leads').push().key;
    database.ref('leads/'+newKey+'/name').set(clientName);
    database.ref('leads/'+newKey+'/mobile').set(clientMobile);
    database.ref('leads/'+newKey+'/email').set(clientEmail);
}

这是我如何把数据到数据库的工作原理。

enter image description here

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

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

通过上述结构,我需要得到 2 级下来访问所需的数据,因为缺乏文档,我不知道该怎么做,我不知道这样的事情是否会工作:

database.child().child();
66

这个问题的答案深埋在 FirebaseDatabase Reference中。forEach()用于在不知道孩子的确切路径的情况下到达孩子。

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的情况下,器只在新的孩子,而不是以前的现有孩子。

6

您还可以使用点符号来获取您正在寻找的孩子的价值。

我刚刚从最高评分的答案中注释掉了 forEach 循环,并添加了一个 console.log()。

 var leadsRef = database.ref('leads');
  leadsRef.on('value', function(snapshot) {
      // snapshot.forEach(function(childSnapshot) {
        var childData = snapshot.node_.children_.root_.value.value_;
        console.log("snapshot.node_.children_.root_.value.value_: ", snapshot.node_.children_.root_.value.value_)
      // });
  });

在发布这个时,我正在使用 firebase 5.9.1

src = "https:/ / www.gstatic.com / firebasejs / 5.9.1 / firebase.js"

1
var reference = db.ref('/test/');
reference.on('value', function(snapshot) {
snapshot.forEach(function(userSnapshot){
console.log(userSnapshot.val().url)
document.getElementById('gmap').href = userSnapshot.val().location;
document.getElementById('gimg2').src = userSnapshot.val().url;
document.getElementById('name').innerHTML = userSnapshot.val().uid;

我面临着同样的问题。我想从 firebase realtime 数据库中读取数据并在网络上打印相同的数据。我正在读取的数据在测试文档中。使用on()函数拍摄它的快照。Firebase 为您提供了一个 foreach 循环来遍历测试文档中的数据。变量userSnapshot在循环时读取值。变量3,

document.getElementById('gmap').href
document.getElementById('gimg2').src 
document.getElementById('name').innerHTML

是用于在 Web 上打印数据的 DOM 元素

<a id="gmap" class="btn btn-success btn-sm float-right" type="on" 
 role="on">See location </a>
 <p id="name"></p>
 <img id="gimg2" class="img-fluid"/>

我希望这能帮助别人。

-1

如果你想从一个帖子键或客户端键检索数据,最好有一个单独的用户名,如:-

("leads/"+ mobile + "name")
("leads/"+ mobile + "email")

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(57)
看图软件:在 Whatsapp中查看图像元数据
上一篇
数据智能:SAP HANA智能数据集成
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(61条)