В базе данных Cloud Firestore из-за избытка документов в одной коллекции код снимка, который я обычно использую для чтения документов, не работает. Пожалуйста, посмотрите код ниже, это то, как мы пытаемся прочитать данные. Во время использования приложение зависает, что приводит к зависанию устройства.
- Мы уже инициализировали приложение и создали соединение firestoredb при загрузке нашего приложения, используя приведенный ниже код.
//firebase is a global namespace from which all Firebase services are accessed.
firebase.initializeApp(firebaseConfig);
//Initialize firebase database
firestoredb = firebase.firestore();
// caches a copy of the Cloud Firestore data that your app is actively using, so your app can access the data when the device is offline
//[START initialize_persistence]
firebase.firestore().enablePersistence();
2.After this we are trying to read the data using the below code.
```
syncTagFromFirebase:function() {
//Read Data From Cloud Firestore
//Read data with onSnapshot and docChanges and save the data in mySQL database
firestoredb.collection('T5010_TAG').onSnapshot({
//Indicates whether metadata-only changes should trigger snapshot events.
includeMetadataChanges: true
}, function (querySnapshot) {
querySnapshot.docChanges().forEach(function (document) {
var source = querySnapshot.metadata.fromCache ? "Local Cache" : "FireBase Server";
if (source != "Local Cache") {
if (document.type === "added") {
db.transaction(function (tx, rs) {
tx.executeSql("INSERT OR REPLACE INTO T5010_TAG(C5010_TAG_ID, C207_Set_Id, C901_Status,C5010_Void_Fl) VALUES (?,?,?,?) ", [document.doc.id,syncData.sid,syncData.sts,syncData.vfl]
);
});
}
if (document.type === "modified") {
db.transaction(function (tx, rs) {
tx.executeSql("UPDATE T5010_TAG SET C5010_TAG_ID=? ,C207_Set_Id=?,C901_Status=?,C5010_Void_Fl=? WHERE C5010_TAG_ID =?", [document.doc.id,syncData.sid,syncData.sts,syncData.vfl,document.doc.id]
);
});
}
}
});
});
},