Firebase Cloud Firestore中的结构化数据



我一直试图在firestore 中构建我的数据库

我的json看起来像这个

{"UID":"myusrsid","PhotoList":[{"PhotoID":333,"PhotoURL":"url1ofphone"}, {"PhotoID":332,"PhotoURL":"url2ofphoto"} ]}

这里的UID是用户id及其对用户的唯一性,其中的UID有照片列表,其中有照片id及其url

因此,每当用户上传新照片时,如果用户ID已经存在,照片应该添加到照片列表中如果是新用户,则应创建具有新用户的UID,并将照片添加到照片列表中

我一直在绞尽脑汁构建这个

public class Users
{
public string UID { get; set; }
public List<PhotoList> PhotoList { get; set; }
}
public class PhotoList
{
public int PhotoID { get; set; }
public string PhotoURL { get; set; }
}

这是我计划发送和接收数据的型号

我知道检索和存储数据,现在唯一的事情是我需要帮助如何构建它。我正在使用Node js

这是我现在正在做的

const imageBody = {
uid,
imageBase64String,

} = req.body;
await db.collection('users').doc(imageBody.uid).collection('Photos').doc(imageBody.imageBase64String).create({
url : imageBody.imageBase64String
});

Firestore具有最大文档大小,因此不建议存储二进制文件。而是使用Firebase存储并将URL存储在Firestore中。

如果您仍然想在Firestore中存储图像,请考虑使用更平坦的结构。你仍然可以保持强大的访问控制,其他用户也可以更容易地共享照片。通过在文档中设置访问控制,您可以在不牺牲安全性的情况下获得真正强大的共享功能。所以类似于:

Users
Photos
ownerUID
imageBase64String
readPrivs

以及为用户访问图像:

await db.collection("Photos").where("ownerUID", "==", uid).get();

相关内容

  • 没有找到相关文章

最新更新