首页 > 解决方案 > 如何从存储在 Firebase 中的数组中检索对象的 id?

问题描述

我正在做一个相对简单的卡片目录项目。它从表单中获取大量输入,并将它们显示在单独的卡片上。

输入创建一个对象,每个对象都被推入数据库firebase.database().ref('/Book').push(const formed from constructor);

那么数据库看起来像这样:

project-library-7e667
    - Book
        - MDXCUa-3s5yX-Iv8u7X
            contrib: "Me"
            fname: "Albert"
            lname: "Camus"
            own: false
            pubDate: "1942"
            title: "L'Etranger"

每张卡片上都有删除它的选项,或own通过复选框将 的值更改为“真”。

是否有用于事物的速记/参考/变量/符号的名称MDXCUa-3s5yX-Iv8u7X

我不能使用名称本身,因为显然它会随每张卡而改变。我想我可以用每次更改覆盖整个数组,但我认为理解这个问题会更好。

我还想在项目刷新时从数据库中提取以重绘每张卡片,因此很高兴知道这些对象是否有引用它们的方法。

谢谢!

标签: javascriptarraysdatabasefirebasejavascript-objects

解决方案


Okej,您要做的是先获取文档的密钥.data()

所以是这样的:


const db = firebase.firestore();
const ref = db.collection('books').get()

ref.forEach(doc=> {
    const book = {
        id: doc.id,
        author: doc.data().author,
        body: doc.data().body,
        title: doc.data().title,
        starCount: doc.data().starCount,
        authorPic: doc.data().authorPic
    }
    //set your state here with the "book" object
})



推荐阅读