我一直试图在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();