如何将此 Firebase 版本 8 语法更改为版本 9?
How do I changed this Firebase version 8 syntax to version 9?
这是我最初用于将文档添加到子集合“posts”的语法。但我认为 firebase 版本 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 unsubscribe
我试过的
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 unsubscribe
如果您将其中一些操作的结果捕获到一个有意义的命名变量中,事情就会变得更加可读。
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'));
一旦上述工作正常,您可以将前三行重写为:
const postsRef = collection(db, "users", auth.currentUser.email, "posts");
这是我最初用于将文档添加到子集合“posts”的语法。但我认为 firebase 版本 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 unsubscribe
我试过的
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 unsubscribe
如果您将其中一些操作的结果捕获到一个有意义的命名变量中,事情就会变得更加可读。
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'));
一旦上述工作正常,您可以将前三行重写为:
const postsRef = collection(db, "users", auth.currentUser.email, "posts");