如何比较不同集合中的两个Firestore文档并按时间顺序输出

时间:2019-02-05 19:29:04

标签: javascript google-cloud-firestore

我有两个集合,其中包含来自两个用户的消息。这些到DOM的输出很好,它首先显示来自用户1的消息,然后显示来自用户2的消息,或者以其他方式显示。这不利于聊天体验。我需要先浏览文档并按时间顺序排序。

function fetchMessage(){
    dbRef= db.collection("user").doc("eF1RFw3FVAO3LFJ8ORrf7oJPyR13").collection('user1').orderBy("dbTime", "asc");
    dbRef.get().then((snapshot) =>{
        snapshot.docs.forEach(doc =>{ 
            rendermeMessage(doc); //calls these method that outputs and 
                                 //renders to the DOM
        });
    });
}

另一人实时从第二个用户集合中获取消息

dbRef= db.collection("user").doc("eF1RFw3FVAO3LFJ8ORrf7oJPyR13").collection('user2').orderBy("sentAt", "asc");
    dbRef.onSnapshot(function(snapshot) {
        snapshot.docChanges().forEach(function(change) {
            if(change.type==="added"){
                renderAdminMessages(change.doc);
            }
        }); 
    });

我只需要它表现得像普通的聊天应用程序一样,即最早的消息,然后是第二个用户的第二条消息(如果它是排在第二位的消息)。 我创建了一个数组来首先存储两个用户的所有文档,但是我无法循环访问该数组。 每个集合中的每个文档都有一个时间戳和一条消息。

0 个答案:

没有答案