javascript - 如何从存储在 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
?
我不能使用名称本身,因为显然它会随每张卡而改变。我想我可以用每次更改覆盖整个数组,但我认为理解这个问题会更好。
我还想在项目刷新时从数据库中提取以重绘每张卡片,因此很高兴知道这些对象是否有引用它们的方法。
谢谢!
解决方案
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
})
推荐阅读
- python - 如何在 MySQL python 执行中有两个用户输入,其中 WHERE 条件是 1 个用户输入,而更新的 VALUES 是另一个?
- substrate - 在 Substrate 中,`spec_version` 和 `authoring_version` 有什么区别?
- php - 将两个不同的数组数据合并到一个数组php中
- javascript - 如何从给定的数字数组中找到最大数字?
- angular - Angular:如何将数据从按钮发送到服务?
- python-3.x - 将二进制字符串转换为二进制
- angular - 在 Angular 中维护同一组件的多个状态
- c# - C# Swagger 生成具有域身份验证的客户端
- python - 如何杀死另一个脚本运行的脚本
- java - git log --follow 包括错误的提交