web-dev-qa-db-fra.com

Comment stocker et visualiser des images sur firebase?

Comment stocker et visualiser des images sur firebase?

253
dogger

Mise à jour (20160519) : Firebase vient de publier une nouvelle fonctionnalité appelée Firebase Storage . Cela vous permet de télécharger des images et d'autres données non JSON vers un service de stockage dédié. Nous vous recommandons vivement de l'utiliser pour stocker des images, au lieu de les stocker en tant que données codées en base64 dans la base de données JSON.

Vous pouvez certainement! En fonction de la taille de vos images, vous avez plusieurs options:

1. Pour des images plus petites (moins de 10 Mo)

Nous avons un exemple de projet qui fait cela ici: https://github.com/firebase/firepano

L'approche générale consiste à charger le fichier localement (à l'aide de FileReader) afin de pouvoir le stocker dans Firebase comme vous le feriez avec d'autres données. Les images étant des fichiers binaires, vous souhaiterez obtenir le contenu encodé en base64 afin de pouvoir le stocker sous forme de chaîne. Ou encore plus pratique, vous pouvez le stocker en tant que data: url qui est alors prêt à être inséré en tant que src d’une balise img (c’est ce que fait l’exemple)!

2. Pour des images plus grandes

Firebase a une limite de 10 Mo (de données de chaîne codée en utf8). Si votre image est plus grande, vous devrez la diviser en morceaux de 10 Mo. Vous avez cependant raison de dire que Firebase est davantage optimisé pour les petites chaînes qui changent fréquemment que pour les chaînes de plusieurs mégaoctets. Si vous avez beaucoup de données statiques volumineuses, je recommanderais certainement S3 ou un CDN à la place.

264
Michael Lehenbauer

Oui, vous pouvez stocker et afficher des images dans Firebase. Vous pouvez utiliser un filepicker pour obtenir le fichier image. Ensuite, vous pouvez héberger l'image comme vous le souhaitez, je préfère Amazon s3. Une fois l'image hébergée, vous pouvez l'afficher à l'aide de l'URL générée pour l'image.

J'espère que cela t'aides.

23
user15163

J'ai fini par stocker les images au format base64 moi-même. Je les traduit à partir de leur valeur base64 lorsqu’il est rappelé de firebase.

18
Grendel2501

Vous pouvez également utiliser un service appelé Filepicker qui stockera votre image sur leurs serveurs et Filepicker qui s'appelle maintenant Filestack, vous fournira une URL à l'image. Vous pouvez ensuite stocker l’URL sur Firebase.

9
Felice

Il y a plusieurs façons de faire que j'ai d'abord fait comme Grendal2501. Je l'ai ensuite fait de manière similaire à user15163, vous pouvez stocker l'URL de l'image dans la base de feu et héberger l'image sur votre hôte de base de feu ou également Amazon S3.

2
Jakob Hartman

L'utilisation de la chaîne Base64 en JSON sera très lourde. L'analyseur doit faire beaucoup de travail lourd. Actuellement, Fresco prend uniquement en charge la base prend en charge Base64. Mieux vaut mettre quelque chose sur Amazon Cloud ou Firebase Cloud. Et obtenez une image sous forme d'URL. Pour que vous puissiez utiliser Picasso ou Glide pour la mise en cache.

1
Asthme