【问题标题】:Firebase import sorted dataFirebase 导入排序数据
【发布时间】:2017-01-09 09:30:12
【问题描述】:

我想从 Firebase 数据库中导入排序后的数据。

例如: 我有一家小公司,我需要导入所有雇主的数据。 我是owner_01,这意味着我必须导入其子owner_uid 匹配owner_01 的所有用户。

数据将在网站上使用,这意味着我将使用javascript

这里有 JSON:

    {
  "Owner_users" : {
    "owner_01" : {
      "email" : "owner_01@gmail.com",
      "uid" : 123
    },
    "owner_02" : {
      "email" : "owner_02@gmail.com",
      "uid" : 12345
    }
  },
  "Users" : {
    "user_01" : {
      "Email" : "asd@ghita.com",
      "Name" : "asd",
      "age" : 23,
      "owner_uid" : 123,
      "uid" : "asd"
    },
    "user_02" : {
      "Email" : "all@gmail.com",
      "Name" : "all",
      "age" : 49,
      "owner_uid" : 123,
      "uid" : "asdfg"
    },
    "user_03" : {
      "age" : 60,
      "email" : "ovenre@gmail.com",
      "owner_uid" : 12345,
      "uid" : "sdfzsvsvsd"
    }
  }
}

检查this url 以了解数据库的结构。 更新:

HTML 代码:

<table class="mdl-data-table mdl-js-data-table ">
    <thead>
      <tr>
        <th class="mdl-data-table__cell--non-numeric">Email</th>
        <th>Age</th>
        <th>uid</th>
      </tr>
    </thead>
    <tbody id="usersData">
    </tbody>
  </table>

JS代码

var usersRef = firebase.database().ref('Users')
var query = usersRef.orderByChild('owner_uid').equalTo('123');
query.on("child_added", function(snapshot) {

  var email = snap.child("Email").val;
  var name = snap.child("Name").val;
  var uid = snap.child("uid").val;

  $("#usersData").append("<tr><td" + email + "</td><td>" + name + "</td><td>" + uid + "</td></tr>");

});

【问题讨论】:

  • 您在问题中包含了指向 JSON 树图片的链接。请将其替换为作为文本的实际 JSON,您可以通过单击 your Firebase Database console 中的导出 JSON 链接轻松获得该文本。将 JSON 作为文本使其可搜索,让我们可以轻松地使用它来测试您的实际数据并在我们的答案中使用它,一般来说这只是一件好事。
  • @FrankvanPuffelen 感谢您的建议!我上传了 JSON 树。

标签: javascript web firebase firebase-realtime-database


【解决方案1】:
var usersRef = firebase.database().ref('Users')
var query = usersRef.orderByChild('owner_uid').equalTo('YOUR UID HERE');
query.on("child_added", function(snapshot) {
  console.log(snapshot.val().uid);
});

【讨论】:

  • @FrankvanPuffelen 我试过这个,我想我错过了一些东西,如果我做错了什么,请你指点我吗?我更新了 HTML 和 js 代码/=。
  • var email = snap.child("Email").val -> var email = snap.child("Email").val().
  • @FrankvanPuffelen 对此感到抱歉。我修改了所有丢失的 () 但它仍然没有在我的表中显示我想要导入的信息。
  • @FrankvanPuffelen 我将函数(快照)修改为 snap=>,它正在工作,但我不知道为什么。
  • 这确实不应该有所作为。但很高兴听到它有效。快乐的黑客攻击!
猜你喜欢
  • 1970-01-01
  • 2020-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多