Подтвердить что ты не робот

Хранить файлы с уникальными/случайными именами

С новым API Firebase вы можете загружать файлы в облачное хранилище из кода клиента. В примерах предполагается, что имя файла известно или статично во время загрузки:

// Create a root reference
var storageRef = firebase.storage().ref();

// Create a reference to 'mountains.jpg'
var mountainsRef = storageRef.child('mountains.jpg');

// Create a reference to 'images/mountains.jpg'
var mountainImagesRef = storageRef.child('images/mountains.jpg');

или

// File or Blob, assume the file is called rivers.jpg
var file = ...

// Upload the file to the path 'images/rivers.jpg'
// We can use the 'name' property on the File API to get our file name
var uploadTask = storageRef.child('images/' + file.name).put(file);

Когда пользователи загружают свои собственные файлы, конфликты имен будут проблемой. Как вы можете создать Firebase имя файла, а не определять его самостоятельно? Есть ли что-то вроде функции push() в базе данных для создания уникальных ссылок на хранилище?

4b9b3361

Ответ 1

Firebase Storage Product Manager здесь:

TL; DR: используйте генератор UUID (в Android (UUID) и iOS (NSUUID), они встроены в JS, вы можете использовать что-то вроде этого: Создать GUID/UUID в JavaScript?), затем добавьте расширение файла, если вы хотите его сохранить (разбить файл.имя на '.' и получить последний сегмент)

Мы не знали, какую версию уникальных файлов разработчики захотят (см. ниже), так как для этого много, много вариантов использования, поэтому мы решили оставить выбор разработчикам.

images/uuid/image.png   // option 1: clean name, under a UUID "folder"
image/uuid.png          // option 2: unique name, same extension
images/uuid             // option 3: no extension

Мне кажется, что это было бы разумным объяснением в нашей документации, поэтому я буду регистрировать ошибку, чтобы ее документировать:)