【发布时间】:2021-03-02 20:37:35
【问题描述】:
我有两个这样的功能:
export function senderMessageInbox(senderUID, recieverUID,
recieverProfileURL, recieverUsername) {
return new Promise(function(resolve, reject){
resolve(
firebase.firestore().collection('messages')
.doc(senderUID)
.collection("inboxMessages")
.doc(recieverUID)
.set({
date: new Date().getTime(),
avatarUrl: recieverProfileURL,
message: "",
userId: recieverUID,
username: recieverUsername
})
)
})
}
export function recieverMessageInbox(senderUID, recieverUID,
senderProfileURL, senderUsername) {
return new Promise(function(resolve, reject){
resolve(
firebase.firestore().collection('messages')
Same logic as above, but passing diff variables
)
})
}
我尝试按顺序调用这些,但在导航到另一个屏幕之前需要分别完成它们。我有这样的事情:
function startChat() {
console.log("senderMessageInbox");
senderMessageInbox(senderUID, user.uid, user.profileURL, user.username)
.then(() => {
console.log("recieverMessageInbox");
recieverMessageInbox(user.uid, senderUID, currentUser.profileURL, currentUser.username)
})
.then(() => {
console.log("navigation.navigate");
navigation.navigate('Messages')
})
}
我正在记录这些步骤,但似乎这些步骤相互重叠并导致数据库重叠。这是正确的方法吗?我需要这些按顺序完成,然后仅在完成后导航到屏幕。
【问题讨论】:
-
缩写为
firebase logic here的空格中实际上是什么? -
@m_callens - 使用 firebase 逻辑更新
标签: javascript firebase react-native google-cloud-firestore