从Firebase实时数据库(Angularfire 5和Ionic 3)中检索单个值

时间:2018-06-21 09:06:50

标签: angular firebase firebase-realtime-database ionic3 angularfire2

我希望能够使用实时数据库(RTD)条目中的单个值。使用Firestore,我可以使用以下代码:

interface Led{
  currentState: boolean,
  lightSensor: number
}

currentState: boolean;
lightSensor: number;

this.afs.collection('Led').valueChanges().subscribe((Led: any) => {
  this.lightSensor = Led[0].lightSensor;
  this.currentState = Led[0].currentState;
})

然后,我能够将currentState或lightSensor调用为HTML并显示值。我可以找到的所有RTD示例都使用ngFor并显示JSON数据,我不知道如何从该数据中获取单个值。我尝试了以下内容,这些内容基本上是从Firestore代码中复制的:

this.db.list('leafBox001').valueChanges().subscribe((Led: any) => {
  this.currentState = Led[0].currentState;
  console.log(this.currentState);
});

控制台日志返回未定义。

3 个答案:

答案 0 :(得分:2)

您可以通过键获取对象:

require_once("../index.php");

答案 1 :(得分:0)

我认为这仅仅是我对语言的不熟悉。这是我在寻找https://stackoverflow.com/a/47877360/9971934

的答案

答案 2 :(得分:0)

按照“方法”示例:

getCategory(idCategoria:string) {
  this.refCategoria = this.db.list('categorias',

  ref => ref.orderByChild('id').equalTo(idCategoria));

  this.refCategoria.valueChanges().subscribe(

    (datas) => { console.log("datas", datas) }
  );

}

这是过滤器:

ref.orderByChild('id').equalTo(idCategoria))
我集合中的

'id'=>字段用于索引数据。 'idCategoria'=>这是我的RTDB中注册表的“ id”。