diff --git a/src/itemService.js b/src/itemService.js index af32b9f..eaab316 100644 --- a/src/itemService.js +++ b/src/itemService.js @@ -28,6 +28,7 @@ }, async getAllItems() { + var t=Date.now() var d = deferred(); let itemIds = await this.getUserItemIds(); itemIds = Object.getOwnPropertyNames(itemIds || {}); @@ -36,19 +37,21 @@ if (!itemIds.length) { d.resolve([]); } - + var remoteDb = await window.db.getDb(); const items = []; - for (let i = 0; i < itemIds.length; i++) { - const id = itemIds[i]; - utils.log('Starting to fetch item ', id); - this.getItem(id).then(item => { - items.push(item); - // Check if we have all items now. - if (itemIds.length === items.length) { - d.resolve(items); - } + remoteDb + .collection('items') + .where('createdBy', '==', window.user.uid) + .onSnapshot(function(querySnapshot) { + querySnapshot.forEach(function(doc) { + items.push(doc.data()); + }); + utils.log('Items fetched in ', Date.now()-t, 'ms') + + d.resolve(items); + }, function() { + d.resolve([]) }); - } return d.promise; }, diff --git a/src/script.js b/src/script.js index 604db7a..6f2d119 100644 --- a/src/script.js +++ b/src/script.js @@ -509,7 +509,7 @@ loginModal, profileModal, profileAvatarImg, profileUserName, openItemsBtn var items = []; if (!window.IS_EXTENSION && window.user) { items = await itemService.getAllItems(); - + utils.log('got items') if (shouldSaveGlobally) { items.forEach(item => { savedItems[item.id] = item;