На моем веб-сайте в данный момент есть пользователь, который загружает фотографию профиля. Это изображение профиля загружается в хранилище, и затем я запускаю .getDownloadURL()
, чтобы загрузить URL-адрес и ссылку на него с моего веб-сайта.
Все работает хорошо.
С тех пор я решил использовать Image Resizer, чтобы изменить размер моего изображения до 100x100, чтобы использовать его в качестве эскиза (сохраняя оригинал для использования в другом месте).
Проблема в том, что я получаю сообщение об ошибке uncaught exception: [object Object]
по запросу downloadURL для измененного изображения.
Однако, здесь странная вещь. Если я повторно загрузить то же изображение, оно работает, и все идет хорошо.
У меня есть подозрение, что это происходит из-за того, что токен доступа не создается автоматически в первый раз, но это происходит во второй раз. Я не уверен, как сделать так, чтобы он создавался в первый раз (учитывая, что исходное изображение уже выполнено, но изменение размера - нет)
fileUpload (event) {
console.log('user id 1 - ' + this.$store.getters.userInfo.user_id)
// get
var file = event.target.files[0]
// ref
var storageRef = firebase.storage().ref('User_Avatars/' + this.$store.getters.userInfo.user_id + '/' + file.name)
this.fileRef = this.$store.getters.userInfo.user_id + '/' + file.name
// upload
var task = storageRef.put(file)
// update prog
task.on(
'state_changed',
snapshot => {
this.fileValue =
(snapshot.bytesTransferred / snapshot.totalBytes) * 100
}, error => {
// eslint-disable-next-line no-console
console.log(error.message)
}, () => {
firebase.storage()
.ref('User_Avatars/' + this.$store.getters.userInfo.user_id + '/' + file.name).getDownloadURL()
.then((url) => {
this.userAvatar = url
// eslint-disable-next-line no-console
console.log('Getting full Image ' + this.userAvatar)
})
.then(() => {
this.createThumbnail(file)
console.log('1')
})
})
},
createThumbnail (file) {
const filename = file.name
const thumbnailDimensions = '_100x100'
const fileEx = filename.split('.').pop()
const fileThumb = filename.replace('.' + fileEx, thumbnailDimensions + '.' + fileEx)
this.thumbFileRef = fileThumb
const ref = this.thumbFileRef
console.log('grabbing ref -' + ref)
firebase.storage()
.ref('User_Avatars/' + this.$store.getters.userInfo.user_id + '/' + ref).getDownloadURL()
.then((url) => {
this.avatarThumbURL = url
// eslint-disable-next-line no-console
console.log('Getting Image thumbnail ' + this.avatarThumbURL)
})
},