Jak przechowywać i wyświetlać obrazy w Firebase?
Jak przechowywać i wyświetlać obrazy w Firebase?
Odpowiedzi:
Aktualizacja (20160519) : Firebase właśnie wydała nową funkcję o nazwie Firebase Storage . Umożliwia to przesyłanie zdjęć i innych danych innych niż JSON do dedykowanej usługi pamięci masowej. Zdecydowanie zalecamy użycie tego do przechowywania obrazów, zamiast przechowywania ich jako danych zakodowanych w standardzie base64 w bazie danych JSON.
Z pewnością możesz! W zależności od wielkości twoich zdjęć masz kilka opcji:
1. W przypadku mniejszych zdjęć (poniżej 10 MB)
Mamy przykładowy projekt, który robi to tutaj: https://github.com/firebase/firepano
Ogólnym podejściem jest ładowanie pliku lokalnie (przy użyciu FileReadera), dzięki czemu można go przechowywać w Firebase, tak jak inne dane. Ponieważ obrazy są plikami binarnymi, będziesz chciał pobrać zawartość zakodowaną w standardzie base64, abyś mógł zapisać ją jako ciąg. Lub nawet wygodniej, możesz przechowywać go jako dane: URL który jest następnie gotowy do umieszczenia jako src znacznika img (tak robi przykład)!
2. Dla większych zdjęć
Firebase ma limit 10 MB (danych łańcuchowych zakodowanych w utf8). Jeśli twój obraz jest większy, musisz podzielić go na 10 MB fragmentów. Masz rację, że Firebase jest bardziej zoptymalizowany dla małych łańcuchów, które często się zmieniają, zamiast łańcuchów o wielkości wielu megabajtów. Jeśli masz dużo dużych danych statycznych, zdecydowanie polecam S3 lub CDN.
Tak, możesz przechowywać i wyświetlać obrazy w Firebase. Możesz użyć narzędzia do pobierania plików, aby uzyskać plik obrazu. Następnie możesz hostować obraz, jak chcesz, wolę Amazon s3. Po hostowaniu obrazu można go wyświetlić przy użyciu adresu URL wygenerowanego dla obrazu.
Mam nadzieję że to pomoże.
Sam skończyłem z przechowywaniem obrazów w formacie base64. Tłumaczę je na podstawie ich wartości base64, gdy są wywoływane z bazy ogniowej.
Możesz także skorzystać z usługi o nazwie, Filepicker
która będzie przechowywać twój obraz na swoich serwerach, a Filepicker, który nazywa się teraz Filestack, dostarczy Ci adres URL obrazu. Możesz zapisać adres URL do Firebase.
Jest kilka sposobów, aby to zrobić. Najpierw zrobiłem tak, jak zrobił to Grendal2501. Zrobiłem to podobnie do user15163, możesz zapisać adres URL obrazu w bazie firebase i hostować obraz na hoście firebase lub Amazon S3;
Używanie ciągu Base64 w JSON będzie bardzo ciężkie. Parser musi wykonać bardzo ciężkie podnoszenie. Obecnie Fresco obsługuje tylko podstawowe obsługuje Base64. Lepiej umieść coś na Amazon Cloud lub Firebase Cloud. I uzyskaj obraz jako adres URL. Abyś mógł używać Picassa lub Glide'a do buforowania.