首页 > 解决方案 > 如何在 firebase 数据库中获取 push() 的引用?

问题描述

我想从我的 firebase 数据库中检索数据。

在此处输入图像描述

在 IMG 1 中突出显示的是用户 uid,其下方是来自 push() 的值。

这是我检索数据的代码

var getClassInfo = firebase.database().ref().child('Classes'+ user.uid + 
'/');
 getClassInfo.on('value', gotData,errData);

function gotData(data) {
//console.log(data.val());
var Classes = data.val()
var keys = Object.keys(Classes);
console.log(keys);


for (var i =0; i < keys.length; i ++){
  var k = keys[i];
  var TheClass = Classes[k].TheClass;
  console.log(TheClass);
  }
  }

function errData(err) {
console.log('Error!');
console.log(err);

 }

如何引用()push()的值?

var getClassInfo = firebase.database().ref().child('Classes'+ user.uid + 
[push()]);

如何从特定用户 [TheClass] 检索所有教室名称?

标签: javascriptfirebasewebfirebase-realtime-database

解决方案


获取push创建的教室的值,如下,classIdpush创建的key在哪里(如LMpv.....)

    firebase.database().ref('Classes/' + user.uid + '/' + classId).once('value').then(function (snapshot) {           
        console.log(snapshot.val().TheClass);
        // ....
    });

name要检索特定 的所有教室user,请执行以下操作:

var userRef = firebase.database().ref().child('Classes' + '/' + user.uid);
userRef.once('value', function(snapshot) {
  snapshot.forEach(function(childSnapshot) {
    var childData = childSnapshot.val();
    var classroomName = childData.TheClass
  });
});

通过使用该once()方法,您可以从数据库中读取一次值,请参阅https://firebase.google.com/docs/reference/js/firebase.database.Reference#once

如果您想使用该on()方法(就像您在问题中所做的那样)并持续监听user节点并检测何时添加新教室,请执行以下操作:

var userRef = firebase.database().ref().child('Classes' + '/' + user.uid);
userRef.on('child_added', function(data) {
  console.log(data.val().TheClass);
});

请参阅此处此处的文档。


推荐阅读