首页 > 解决方案 > 如何将firebase_auth的用户信息与上传到其他数据库的文件链接起来

问题描述

我正在尝试使用 Flutter 和 Firebase 制作类似图像/视频共享应用程序的东西。

使用 firebase_auth 进行用户注册和身份验证 使用 firebase_storage 上传文件 在 cloud_firestore 等中保存数据← 现在在这里

我在看,但我正在和他们一起工作,例如,

链接用户信息(用户id)和上传的文件,我想知道每个文件是谁上传的,怎么办?

如果我能做到这一点,我可以按用户 ID 搜索文件,我根据文件上传的数量给每个用户积分我认为你可以做这样的事情。

我需要为此使用firestore或其他东西吗?

标签: firebaseflutterfirebase-authentication

解决方案


我相信做到这一点的一个好方法是在 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

推荐阅读