Firebase Storage - Получить URL для загрузки из Publi c Image - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть логика c изображения, загруженного из внешнего интерфейса -> Я получаю URL-адрес для загрузки и прикрепляю его к документу пользователя с помощью функции.

Это текущий код:

export const newProfilePictureUploaded = functions.region('europe-west1').storage.object().onFinalize(async (object) => {

    if (!object.contentType?.startsWith('image/')) return;

    return admin.storage().bucket(object.bucket).file(object.name || '').makePublic().then(async data => {
        const filename = object.name as string;

        const splitName = filename.split('/');
        const folderName = splitName[0];

        if (folderName === 'profilePics') {
            const uid = splitName[1].substring(0, splitName[1].indexOf('.'));
            console.log(uid);
            await updateUserAvatar(uid, 'https://storage.googleapis.com/' + object.bucket + '/' + object.name)
            return;
        }

        console.log('No operation for folder ' + folderName);
        return
    })
})

Теперь дело в том, что изображение отображается в URL-адресе, но даже если изображение в хранилище будет заменено, URL-адрес все равно будет указывать на это старое изображение. Хотя он должен быть удален, а новое изображение должно быть по этому пути.

Почему я не использую метод .getSignedUrl()? URL-адрес, который я получаю, слишком длинный, чтобы хранить его в RTDB, и URL-адрес может быть опубликован c, поэтому использование этого метода для меня неоптимально.

...