如何根据用户从 Firebase 存储中检索文件?

问题描述 投票:0回答:1

我使用 Firebase Auth 和 Firestore 制作了一个待办事项列表应用程序,我想添加附加图像功能,您可以使用该功能将图像添加到任务中。我需要结合使用 Auth、Storage 和 Firestore,但我不知道如何组合它们。

如何使用 Firestore 访问 Firebase 存储中的数据?在开始之前,我想象这就像向每个任务添加一个 imageLink 字段,然后链接到 Firebase Storage 中的相关图像。有类似的东西吗?我该怎么办?

flutter firebase google-cloud-platform google-cloud-firestore firebase-storage
1个回答
2
投票

Firestore 和 Cloud Storage 是 Firebase 提供的两种不同的服务。他们互相不交流。您可以在这两个服务中存储的不同“实体”之间建立链接。

针对您的用例,一种非常常见的方法是首先将文件上传到 Cloud Storage,然后保存在 Firestore 文档中,可以是文件的路径,也可以是文件的签名 URL(或两者,知道您使用的路径)始终可以生成签名 URL)。

另一种方法是获取 Firestore 文档 ID(使用

addDoc()
setDoc()
方法自动生成)并使用此 ID 重命名文件,然后再将其保存到 Cloud Storage。这样,文件和 Firestore 之间的链接就清晰可见,您可以非常轻松地在前端链接它们。您还可以使用此方法将链接到一个 Firestore 文档的所有文件放入给定文件夹中:您使用文档 ID 命名该文件夹。

第三种方法是使用 Cloud Storage 文件的元数据来存储 Firestore 文档的 ID。大多数时候,这种方法不太“方便”:您要么需要知道文件的路径,要么需要列出存储桶或文件夹中的所有文件才能获取 Firestore 文档的 ID。但对于某些特定情况,这可能是一种有趣的方法,因为知道没有什么可以阻止您将方法 #1 或 #2 与方法 #3 结合起来(如有必要)...

© www.soinside.com 2019 - 2024. All rights reserved.