In Firebase Realtime Database I was used to organize relations this way:
/projects/{projectId}
/users/{userId}
/project-members/{userId}/{projectId}/true
According to the Firestore docs (https://firebase.google.com/docs/firestore/manage-data/structure-data#subcollections) I should structure this way:
/users/{userId}
/projects/{projectId}
/projects/{projectId}/members/{userId}/true (???)
But i'm struggling with it, can someone give me a hint?
First try:
return db.collection("projects").add({
name: "Project Name",
members: {
[userId]: true
}
});
It works to store, but I found not possible to delete. I believe because the project is a unique document.
// It doesn't work
return db.doc(`projects/${projectId}/members/${userId}`).delete()
Second try:
Because true is not an object it doesn't work:
db.collection("projects").doc(projectId).collection("members").doc(userId).set(true);
Edit:
According to Michael response, to delete in the first case:
return db.doc(`projects/${projectId}`).update({
[`members.${userid}`]: firebase.firestore.FieldValue.delete()
});