В настоящее время я новичок в Ionic и пытаюсь внедрить службу чата для приложения, над которым я работаю. Я хотел попробовать использовать FireStore, и это то, что я имею до сих пор.
Мне удалось прочитать и получить сообщения из магазина, но только после того, как я отправил свое сообщение.
Другими словами, функция извлечения сообщений активируется только после того, как я нажму кнопку отправки.
Мне было интересно, был ли у меня способ постоянно проверять наличие обновлений в firestore, чтобы чат можно было обновлять в «реальном времени».
Это код, который у меня есть для получения сообщений чата. Я поместил их в ionviewwilload (), чтобы получать все сообщения при входе в чат-комнату и когда я нажимаю «Отправить» на мои сообщения.
retrieveCollection() : void
{
this._DB.getChatMessages(this._COLL,this._COLL2)
.then((data) =>
{
console.log(data);
// IF we don't have any documents then the collection doesn't exist
// so we create it!
if(data.length === 0)
{
// this.generateCollectionAndDocument();
}
// Otherwise the collection does exist and we assign the returned
// documents to the public property of locations so this can be
// iterated through in the component template
else
{
this.chats = data;
}
})
.catch();
}
Функция getchatmessages затем связывается с моим провайдером, чтобы затем получать мои сообщения из хранилища, а затем возвращать их как обещание.
getChatMessages(collectionObj: string, collectionObj2) : Promise<any>{
let user : string = firebase.auth().currentUser.uid;
return new Promise((resolve, reject) => {
this._DB.collection(collectionObj).doc(collectionObj2).collection("messages")
.orderBy("sendDate", "asc")
.onSnapshot
((querySnapshot) => {
let obj : any = [];
querySnapshot
.forEach(function(doc) {
console.log(typeof doc);
console.log(doc);
obj.push({
id : doc.id,
message : doc.data().message,
type : doc.data().type,
user :doc.data().user,
image: doc.data().image
});
});
resolve(obj);
})
});
}
Таким образом, мой вопрос заключается в том, чтобы спросить, существует ли какой-либо специальный метод или функция, которые я пропустил в документации, которая позволяет мне постоянно проверять наличие обновлений, подобных этому в приложении чата.
Большое спасибо тем, кто отвечает.