firebase - 如何将firebase_auth的用户信息与上传到其他数据库的文件链接起来
问题描述
我正在尝试使用 Flutter 和 Firebase 制作类似图像/视频共享应用程序的东西。
使用 firebase_auth 进行用户注册和身份验证 使用 firebase_storage 上传文件 在 cloud_firestore 等中保存数据← 现在在这里
我在看,但我正在和他们一起工作,例如,
链接用户信息(用户id)和上传的文件,我想知道每个文件是谁上传的,怎么办?
如果我能做到这一点,我可以按用户 ID 搜索文件,我根据文件上传的数量给每个用户积分我认为你可以做这样的事情。
我需要为此使用firestore或其他东西吗?
解决方案
我相信做到这一点的一个好方法是在 Firestore 数据库中为videos
和 for创建一个集合images
,甚至是一个名为 的通用集合media
,其中每个文档都有关于上传媒体的信息,例如类型(视频/图像)、文件的 url来自 Firebase 存储、用户 ID 和上传日期。您可以创建这样的模型,例如:
class UserMedia {
String userId;
String mediaUrl;
String mediaType; // media type can be video, image, audio, etc.
DateTime uploadedAt;
}
然后在您的 Firestore 数据库中,您可以创建如下结构:
/media/{userId}/{userMedia} //here userMedia is a document created with the model described above.
并为 Firebase 存储做同样的事情。如果文件不存在,您可以将文件保存在 Storage 基于路径创建的文件夹中。例如,您可以上传传递一些变量(例如 userId)的文件,存储将创建文件夹,例如:
/media/{userId}/image_{userId}_{imageId}.jpg
推荐阅读
- regex - 用于在电子邮件 vba 中获取特定单词的正则表达式
- categories - 用于选择的多个类别 UID(类别树)?
- python - Django 的 Manager 类中是否有 create() 方法?
- node.js - 如何使用 sinon 和 mocha 在 node js 中模拟可配置的中间件
- android - 在 VS Code 中在 Android 手机上运行 Flutter 应用
- clang++ - Emscripten EMSCRIPTEN_KEEPALIVE / EXPORTED_FUNCTIONS 来自除 main 之外的 hpp/cpp 文件
- html - 如何判断网页的哪个部分与特定的 React 组件相关联
- c# - 当阅读器关闭时,C# 尝试调用深度无效
- java - Spring Boot Hibernate 在第一次使用空数据库启动时抛出约束警告
- node.js - process.env.MONGODB_URI 是什么意思?