【发布时间】:2022-01-04 20:39:33
【问题描述】:
在 svelte 中添加具有自动生成 id 的 firebase 文档的正确方法是什么?
到目前为止,我使用的是以下代码 sn-p:
db.collection('colname').add({ id:'temp', text:'sometext' }).then(
result=>{
db.collection('colname').doc(result.id).update({id: result.id});
}
);
我不喜欢这个解决方案的地方:
- 与数据库有 2 个单独的交互;
- Svelte 将内容呈现 2 次,即在每次数据库交互之后。这也是我需要在add()中添加一个临时id的原因。
有没有更简洁的解决方案?
上下文:
我想将文档作为参数传递给一个苗条的 SvelteSubComponent:
let docs = [];
db.collection('colname').onSnapshot(data =>{
docs=data.docs;
});
(...)
{#each docs as doc}
<SvelteSubComponent {...doc.data()}/>
{/each}
我希望能够访问 SvelteSubComponent 中的文档 ID。
【问题讨论】:
-
您需要文档 ID 是 Firebase 生成的 ID,还是可以是任何唯一的、随机生成的 ID?
-
@ThomasHennes 我想我真的不需要由 Firebase 专门生成 id。但是我想确定 id 是 unique,并且我可以通过它的 id 轻松获取文档(即类似 db.collection('colname').doc('docId') 的东西)
标签: javascript firebase google-cloud-firestore svelte