【问题标题】:Firebase - get single element form databaseFirebase - 获取单元素表单数据库
【发布时间】:2019-06-10 22:45:56
【问题描述】:

我尝试从特定项目表单数据库中获取价值。但是当我使用文档中的解决方案时,我会从所有项目中获得特定的价值。

离子 4 Firebase 实时数据库

数据库结构:

https://.......com/projectName/bills/
-Lh-LgSqR1vSANRnA09G{
amount: xxx
name: xxx
}
-Lh-LhZachVgF7rnqW-1{
amount: xxx
name: xxx
}
-Lh-LiyC3ve4DrKmdTEj{
amount: xxx
name: xxx
}
  getKey(){
    var refKey = firebase.database().ref('bills');
    refKey.once('value', function(snapshot){
      snapshot.forEach(function(childSnap){
        var billKey = childSnap.key;
        console.log('Key 1 ' + billKey);

      });
    });
  }

我得到了这个结果:

Key 1 -Lh-LgSqR1vSANRnA09G
Key 1 -Lh-LhZachVgF7rnqW-1
Key 1 -Lh-LiyC3ve4DrKmdTEj

钥匙很好,但适用于所有物品。

我只想获得一个被点击元素的键,而不是我数据库中所有项目的键。

更新:

<ion-item style="color: grey;" *ngFor='let bill of myService.bills' slot='start' lines='none' (click)='getKey()'>
<p>  {{bill.name}}:  {{ bill.amount}} zł  </p>
</ion-item>

【问题讨论】:

  • "我只想得到一个点击元素的键"。您如何定义要获取的密钥?你们中的最后一个?第一个?一个有特定名称的?
  • 我想要被点击的项目的钥匙。
  • 好的,可以添加点击对应的代码吗?换句话说,你点击哪里?在列出所有账单的表格中的按钮上??
  • 我更新了我的帖子。

标签: javascript firebase firebase-realtime-database ionic4


【解决方案1】:

在您的代码中,您正在循环,这就是您要检索所有键和键中的项目的原因。要解决您的问题,您可以执行以下操作:

  getKey(){
    var refKey = firebase.database().ref('bills').child("-Lh-LgSqR1vSANRnA09G");
    refKey.once('value', function(snapshot){
        var amount = snapshot.val().amount;
        var name   = snapshot.val().name;
    });
  }

这将得到与密钥"-Lh-LgSqR1vSANRnA09G"相关的数据

【讨论】:

    【解决方案2】:

    您需要在 (click) 处理程序中传递被点击的项目:

    <ion-item *ngFor='let bill of myService.bills' (click)='getKey(bill)'>
    

    然后您可以在函数中使用该项目的信息:

    getKey(bill){
      console.log(bill.name);
    }
    

    现在我不确定您如何填充 bills,因为您没有共享该代码。但为了从bill 中读取密钥,您需要确保在从数据库中读取bills 中的元素时包含该密钥。所以如果您目前只使用snapshot.val()valueChanges(),您可能需要将其更改为也使用snapshot.key 或使用docChanges()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-15
      • 1970-01-01
      • 2014-01-09
      • 1970-01-01
      相关资源
      最近更新 更多