【问题标题】:How to get just one child from FIrebase Realtime Database instead of whole list如何从 FIrebase 实时数据库中获取一个孩子而不是整个列表
【发布时间】:2018-08-16 20:43:37
【问题描述】:

我正在为我的应用实施 Firebase 实时数据库。 该数据库包含许多条目,这些条目将在未来继续增长。 我只想从数据库中检索一个特定的孩子,但我找不到任何实现。 在 Firebase 中,实现也会从数据库中检索所有条目。 这在将来会很麻烦。 有没有办法只检索特定条目或只检索一个条目(取决于自定义)?

请帮忙。

@ALex Mamo: This is the database image

【问题讨论】:

  • 到目前为止你尝试过什么?贴出代码
  • 你知道你想知道值的孩子的正确路径吗?
  • 是的,我知道孩子的路径,它只是想根据 Firebase 分配的唯一 ID 或与孩子有关的一些唯一值来实现对孩子的搜索和检索。
  • @AasayChaturvedi 请添加您的数据库结构并指明您想要获取的特定元素。也请回复@。
  • @AlexMamo 数据库结构是:

标签: android firebase firebase-realtime-database


【解决方案1】:

也许您指的是浅查询,它只读取第一个孩子?在这种情况下,您可能需要查看此处提到的 API 实现:

Firebase (2016) Shallow Query

【讨论】:

    【解决方案2】:

    有两种不同的获取方式。您必须将“消息”更改为数据库的名称。将 PostTitle 替换为您尝试接收的特定数据。

    var rootRef = firebase.database().ref().child("messages");
    
    rootRef.on("child_added", snap=> {
    
      var postTitle = snap.child("PostTitle").val();
    

    exports.sendPushNotification = functions.database.ref('/messages/{id}').onWrite((change, context) => {
    
        const afterData = change.after.val();
        const postTitle = afterData.PostTitle;
    

    【讨论】:

    • PostTitle 是否提示我填写了孩子的特定唯一标识?还是唯一的搜索参数,它将给我一个孩子或包含该参数的孩子列表?
    • 它应该会自动为您提供信息,如果您对其进行测试,您就会明白我在说什么。
    • 这是javascript代码。我需要安卓的代码。很好,但我对 javascript 不太熟悉
    【解决方案3】:

    如果您想检索少量记录,这可能会有所帮助。根据附加的图像结构。

    您可以重组数据,并使用 set 方法将键设置为 0,1,2.... 而不是 "LK34h...."->0 。 使用 set 方法并存储最新的索引值。

    你是这样检索的

    firebase.database().ref().child('users_Post/0').on('value',sn=>{ console.log(sn.val())//use sn.val() })

    【讨论】:

      猜你喜欢
      • 2021-05-28
      • 1970-01-01
      • 2021-01-25
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      • 1970-01-01
      • 2021-09-25
      • 2021-10-01
      相关资源
      最近更新 更多