Firebase Depolama Görüntüleri saklama ve alma [kapalı]


268

Firebase'de görüntüler nasıl saklanır ve görüntülenir?


1
Firebase kullanarak görüntüleri depolarsam, güvenlik için firebase girişlerini kullanabilirim
mrwaim

6
Dün itibarı ile Firebase, keyfi dosyalar (resimler, video, ses vb.) Yüklemenizi ve indirmenizi sağlayan Firebase Depolama (firebase.google.com/docs/storage) adlı yeni bir özellik yayınladı. Petabyte ölçeği ve rekabetçi fiyat için Google Cloud Storage (cloud.google.com/storage) tarafından desteklenmektedir. Bunu kesinlikle kontrol etmelisin :)
Mike McDonald

16
Kullanıcılar yararlı buluyor, neden kapattınız?
Amr Lotfy

7
@TinyGiant Bu bir öneri istemiyor, neden bu kadar kapalı olsun ki? Bir yazılım hizmetinin bir özelliğini - tamamen konu hakkında soruyor.

2
erken kapalı yorumlardan nefret ediyorum. Tanrı aşkına doğrudan sorular sorulmamalı!
Jeryl Cook

Yanıtlar:


277

Güncelleme (20160519) : Firebase, Firebase Depolama adlı yeni bir özellik yayınladı . Bu, görüntüleri ve diğer JSON dışı verileri özel bir depolama hizmetine yüklemenizi sağlar. Bunu, görüntüleri JSON veritabanında base64 kodlu veri olarak depolamak yerine, saklamak için kullanmanızı önemle öneririz.

Kesinlikle yapabilirsiniz! Görüntülerinizin büyüklüğüne bağlı olarak, birkaç seçeneğiniz vardır:

1. Daha küçük görüntüler için (10mb'nin altında)

Burada bunu yapan bir örnek projemiz var: https://github.com/firebase/firepano

Genel yaklaşım dosyayı yerel olarak yüklemektir (FileReader kullanarak), tıpkı diğer veriler gibi Firebase'de depolayabilirsiniz. Görüntüler ikili dosyalar olduğundan, base64 ile kodlanmış içeriği almak ve böylece bir dize olarak saklamak istersiniz. Ya da daha da kullanışlı, bir veri olarak saklayabilirsiniz : bir img etiketinin src'si olarak girmeye hazır olan url (örneğin, yaptığı şey budur)!

2. Daha büyük görüntüler için

Firebase'in 10mb (utf8 kodlu dize verisi) sınırı vardır. Resminiz daha büyükse, 10mb'lik parçalara bölmeniz gerekir. Firebase'in çok megabaytlı dizelerden ziyade sık sık değişen küçük dizeler için daha optimize edilmiş olmasına rağmen haklısınız. Çok sayıda büyük statik verileriniz varsa, bunun yerine kesinlikle S3 veya CDN'yi öneriyorum.


2
Bu harika. Hiç dosya boyutu sınırlaması ile karşılaştınız mı? Firebase'in çok megabaytlı dizeler düşünülerek yapıldığını sanmıyorum ...
MasterScrat

8
Firebase'in 10mb (utf8 kodlu dize verisi) sınırı vardır. Resminiz daha büyükse, 10mb'lik parçalara bölmeniz gerekir. Firebase'in çok megabaytlı dizelerden ziyade sık sık değişen küçük dizeler için daha optimize edilmiş olmasına rağmen haklısınız. Çok sayıda büyük statik verileriniz varsa, bunun yerine kesinlikle S3 veya CDN'yi öneriyorum.
Michael Lehenbauer

14
Firebase'in gerçekten barındırma sistemlerine daha büyük bir depolama alanı veya kitaplıklarında yerleşik API'leri olan bir s3 örneği eklemesi gerekir.
The_Brink

9
@The_Brink Geri bildiriminiz için teşekkür ederiz. Bu kesinlikle bizim radarımızda!
Michael Lehenbauer

4
@ezain Doğru. Muhtemelen büyük üretim sahaları için bu yaklaşımı tavsiye etmem (gerçekten CDN destekli bir görüntü sunma hizmeti istiyorsunuz), ancak çok fazla kullanım için kolay ve "yeterince iyi".
Michael Lehenbauer

25

Evet, görüntüleri Firebase'de depolayabilir ve görüntüleyebilirsiniz. Görüntü dosyasını almak için bir dosya seçici kullanabilirsiniz. Sonra görüntüyü istediğiniz gibi barındırabilirsiniz, Amazon s3'ü tercih ederim. Resim barındırıldıktan sonra, resim için oluşturulan URL'yi kullanarak resmi görüntüleyebilirsiniz.

Bu yardımcı olur umarım.


3
Bunun için güncellenmiş firbase belgelerine göz atın
Lukas Liesis

Eğer görüntüyü Amazon'da barındıracaksanız, neden Firebase Storage'a kaydetmiyorsunuz ?
Ojonugwa Jude Ochalifu

19

Görüntüleri base64 formatında kendim sakladım. Firebase'den geri çağrıldığında onları base64 değerlerinden çeviriyorum.


1
Bu yaklaşımla ilgili tek sorun, görüntüler büyük olduğunda, aktiviteler arasında hareket etmenin uygulamayı yavaşlatması ve bazı durumlarda çökmesi
Ojonugwa Jude Ochalifu

10

Ayrıca adlı bir hizmeti kullanabilir Filepickerkendi sunucuları ve Görselinizi saklayacak olan Filepicker Resme bir url sağlayacaktır, şimdi Dosya yiginina denir. URL'yi Firebase'e depolayabilirsiniz.


denedim ama bu konuda çok mutlu değil yorumunuzdan bu hizmeti gördüm.
bpolat

3

Grendal2501'in yaptığı gibi ilk yaptığım birkaç yol var. Daha sonra user15163'e benzer şekilde yaptım, resim URL'sini firebase'de depolayabilir ve resmi firebase ana bilgisayarınızda veya Amazon S3'te barındırabilirsiniz;


Yüklendikten sonra resimlerle ilgili izin sorunları olan görüntüleri eklemeye ve oluşturmaya çalışırken 403 hatası - yüklemeyi nasıl ayarladığınızla ilgili bilgiler. Acl: 'public-read' kullanmaya çalıştım - ancak yükleme 403 ile başarısız oluyor. Herhangi bir bilgi politikası dokümanı ve yardımcı olabilecek politika politikası harika olurdu. AWS - dokümantasyon zordur ve erişim reddedildikten sonra hata ile hata ayıklama bilgisi yoktur.
jamie

2
Bunu başka bir soru olarak sorun
Jakob Hartman

adil fikir :) yapılır - yığın farklı olsa da - bana verebileceğiniz herhangi bir teşvik varsa - memnuniyetle karşılanacaktır. AWS S3 hata ayıklama süper sinir bozucu - en azından şimdiye kadar. stackoverflow.com/questions/31998827/…
jamie

2

JSON'da Base64 dizesini kullanmak çok ağır olacaktır. Ayrıştırıcı çok fazla ağır kaldırma yapmak zorundadır. Şu anda, Fresco sadece Base64 taban desteklerini desteklemektedir. Amazon Cloud veya Firebase Cloud'a daha iyi bir şey koyarsanız. Ve URL olarak bir resim alın. Böylece önbellekleme için Picasso veya Glide kullanabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.