【问题标题】:How can I get the reference of the push() in firebase database?如何在 firebase 数据库中获取 push() 的引用?
【发布时间】:2018-09-20 15:22:01
【问题描述】:

我想从我的 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] 检索所有教室名称?

【问题讨论】:

    标签: javascript firebase web firebase-realtime-database


    【解决方案1】:

    要获取通过push创建的教室的值,请执行以下操作,其中classId是push创建的key(例如LMpv.....)

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

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

    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);
    });
    

    请参阅文档 herehere

    【讨论】:

    • 非常感谢雷诺先生。最后一件事,我如何把它放在一个列表中?比如说,我想在我的 main.html 中的一个列表中显示特定用户的所有教室
    • 您在 snapshot.forEach() 方法中填充您的列表。有关如何执行此操作的指示,请参阅以下内容:vitoshacademy.com/…getbutterfly.com/generate-html-list-from-javascript-arraystackoverflow.com/questions/11128700/…
    • @DodongAdvices 很高兴我能帮上忙!如果您认为它解决了您的问题,您可以接受我的回答,请参阅stackoverflow.com/help/someone-answers。谢谢。
    • 完成!!它说它被记录了
    • 先生。雷诺,我成功地填写了我的名单。用户现在可以查看他/她创建的所有教室。但是我有一些问题,我希望你仍然能帮助我。对于所有的麻烦,我深表歉意。
    猜你喜欢
    • 2016-11-30
    • 1970-01-01
    • 2021-02-28
    • 1970-01-01
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    相关资源
    最近更新 更多