如何使用 AngularFire 从 Firebase 数据库中检索 ID

How to retrieve ID from Firebase Database using AngularFire

我的 Firebase 数据库结构如下:

fire-demo-123

目前我正在使用此代码获取列表
component.ts

title = 'FirebaseDemo';
  // courses: any[];

  courses$;
  course$;
  author$;
  todos$: AngularFireList<any>;
  // subscription : Subscription;

  constructor(public db: AngularFireDatabase) {
    db.list('/course')
      .valueChanges()
      .subscribe((inp) => {
        this.courses$ = inp;
        console.log(this.courses$);
// Output is ["course1", "course2", "course3", "course4"]
          });

component.html

<h3>List</h3>
<ul>
  <li *ngFor="let course of courses$">{{course}}
  </li>
</ul>

但是有什么方法可以参考像 {id:1,value:"course1"}...

这样的 id 来获取它们

这是我的数据库导出。

{
  
  "course" : {
    "1" : "course1",
    "2" : "course2",
    "3" : "course3",
    "-MZOnCn1YdQ2sGLhajuL" : "course4"
  }
}

我正在尝试获取带有 id 的课程。

保持你的数据库结构不变,你能做的最好的事情就是遍历所有键并创建一个新对象,如下所示:

const courses = {
    "1": "course1",
    "2": "course2",
    "3": "course3",
    "-MZOnCn1YdQ2sGLhajuL": "course4"
}

const res = []
Object.keys(courses).forEach((course) => {
    res.push({id: course, value: courses[course]})
})
console.log(res);

我尝试了 运行 上面的代码并为我工作。

请确保将 courses 对象替换为来自实时数据库的快照值。