Esta es la sintaxis que usé originalmente para agregar un documento a una subcolección de "publicaciones". Pero creo que no es compatible con firebase versión 9
const unsubscribe = db.collection("users").doc(firebase.auth().currentUser.email).collection("posts").add({ imageUrl: currentLoggedInUser.unsername, user: CurrentLoggedInUser.username, profile_picture: CurrentLoggedInUser.profilePicture, owner_uid: auth.currentUser.uid, caption: caption, createdAt: serverTimestamp(), likes: 0, likes_by_users: [], comments: [], }).then(() => navigation.navigate('HomeScreen')) return unsubscribelo que probé
const unsubscribe = (doc(collection(db, "users")), auth.currentUser.email, addDoc(collection("posts"), { imageUrl: imageUrl, user: CurrentLoggedInUser.username, profile_picture: CurrentLoggedInUser.profilePicture, owner_uid: auth.currentUser.uid, caption: caption, createdAt: serverTimestamp(), likes: 0, likes_by_users: [], comments: [], }).then(() => navigation.navigate('HomeScreen')) return unsubscribeLas cosas se vuelven mucho más legibles si captura el resultado de algunas de estas operaciones en una variable con un nombre significativo.
const usersRef = collection(db, "users"); const userRef = doc(usersRef, auth.currentUser.email); const postsRef = collection(userRef, "posts"); const promise = addDoc(postsRef, { imageUrl: imageUrl, user: CurrentLoggedInUser.username, profile_picture: CurrentLoggedInUser.profilePicture, owner_uid: auth.currentUser.uid, caption: caption, createdAt: serverTimestamp(), likes: 0, likes_by_users: [], comments: [], }); return promise.then(() => navigation.navigate('HomeScreen'));Una vez que lo anterior funcione, puede reescribir las primeras tres líneas para:
const postsRef = collection(db, "users", auth.currentUser.email, "posts");