在我的项目中使用angularfire时,我不知道该怎么写才能获得波纹管名称 MY BD
我真的需要帮助,我想要查询,该查询可以将name =“ om”项的键还给我,例如,谢谢!
答案 0 :(得分:0)
您要在此处执行的操作是 Query Lists 。只需看一下文档,您就应该走了。
这是一个入门的简单示例:
import { Component } from '@angular/core';
import { AngularFireDatabase } from '@angular/fire/database';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
users;
constructor(private db: AngularFireDatabase) {}
ngOnInit() {
this.db.list('/Users', ref => ref.orderByChild('name').equalTo('Om'))
.snapshotChanges()
.subscribe((snapshot: any) => this.users = snapshot.map(snap => ({ ...snap })));
}
}
在模板中:
<pre>{{ users | json }}</pre>
这将返回一个数组。因此,如果只需要一项,则必须确保要查询的字段是唯一的。
此外,这种查询将把所有数据下载到客户端上。因此,您会得到警告:
@ firebase /数据库: FIREBASE警告:使用未指定的索引。您的数据将在客户端上下载并过滤。考虑将/ Users处的“ .indexOn”:“ name”添加到安全规则中,以提高性能。
要解决此问题,请像这样更新您的安全规则:
{
"rules": {
".read": "auth != null",
".write": "auth != null",
"Users": {
".indexOn": [
"name"
]
}
}
}
这是您推荐的Working Sample StackBlitz。