Skip to content

Commit 6b06916

Browse files
committed
(demo) refactor firebase image progress
1 parent c3b1614 commit 6b06916

File tree

2 files changed

+33
-15
lines changed

2 files changed

+33
-15
lines changed

demo/src/ChatContainer.vue

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -537,29 +537,18 @@ export default {
537537
type = file.type
538538
}
539539
540-
const uploadTask = storageService.uploadFileTask(
540+
storageService.listenUploadImageProgress(
541541
this.currentUserId,
542542
messageId,
543543
file,
544-
type
545-
)
546-
547-
uploadTask.on(
548-
'state_changed',
549-
snap => {
550-
const progress = Math.round(
551-
(snap.bytesTransferred / snap.totalBytes) * 100
552-
)
544+
type,
545+
progress => {
553546
this.updateFileProgress(messageId, file.localUrl, progress)
554547
},
555548
_error => {
556549
resolve(false)
557550
},
558-
async () => {
559-
const url = await storageService.getFileDownloadUrl(
560-
uploadTask.snapshot.ref
561-
)
562-
551+
async url => {
563552
const message = await firestoreService.getMessage(roomId, messageId)
564553
565554
message.files.forEach(f => {

demo/src/database/storage.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,32 @@ export const uploadFileTask = (currentUserId, messageId, file, type) => {
3838
contentType: type
3939
})
4040
}
41+
42+
export const listenUploadImageProgress = (
43+
currentUserId,
44+
messageId,
45+
file,
46+
type,
47+
callback,
48+
error,
49+
success
50+
) => {
51+
const uploadTask = uploadFileTask(currentUserId, messageId, file, type)
52+
53+
uploadTask.on(
54+
'state_changed',
55+
snap => {
56+
const progress = Math.round(
57+
(snap.bytesTransferred / snap.totalBytes) * 100
58+
)
59+
callback(progress)
60+
},
61+
_error => {
62+
error(_error)
63+
},
64+
async () => {
65+
const url = await getFileDownloadUrl(uploadTask.snapshot.ref)
66+
success(url)
67+
}
68+
)
69+
}

0 commit comments

Comments
 (0)