Isso é legal, se eu armazenar imagens usando firebase, eu posso usar logins Firebase para a segurança
mrwaim
6
Ontem, o Firebase lançou um novo recurso, chamado Firebase Storage (firebase.google.com/docs/storage), que permite carregar e baixar arquivos arbitrários (imagens, vídeo, áudio etc.). É apoiado pelo Google Cloud Storage (cloud.google.com/storage) para escala de petabytes e preço competitivo. Você deve definitivamente verificar isso :)
Mike McDonald
16
Os usuários acham útil, por que fechou?
Amr Lotfy
7
@TinyGiant Isso não está pedindo uma recomendação, então por que ela seria fechada como tal? Ele está perguntando sobre um recurso de um serviço de software - completamente sobre o assunto.
2
eu odeio comentários fechados prematuros. perguntas diretas não devem ser fechadas pelo amor de Deus!
precisa
Respostas:
277
Atualização (20160519) : O Firebase acaba de lançar um novo recurso chamado Firebase Storage . Isso permite carregar imagens e outros dados não JSON em um serviço de armazenamento dedicado. É altamente recomendável que você use isso para armazenar imagens, em vez de armazená-las como dados codificados em base64 no banco de dados JSON.
Você certamente pode! Dependendo do tamanho das suas imagens, você tem algumas opções:
A abordagem geral é carregar o arquivo localmente (usando o FileReader) para que você possa armazená-lo no Firebase da mesma forma que faria com qualquer outro dado. Como as imagens são arquivos binários, você deseja obter o conteúdo codificado em base64 para poder armazená-lo como uma string. Ou ainda mais conveniente, você pode armazená-lo como um dado: url, que está pronto para aparecer como o src de uma tag img (é o que o exemplo faz)!
2. Para imagens maiores
O Firebase tem um limite de 10mb (de dados de string codificados em utf8). Se sua imagem for maior, será necessário dividi-la em pedaços de 10 MB. Você está certo, porém, de que o Firebase é mais otimizado para cadeias pequenas que mudam frequentemente, em vez de cadeias de vários megabytes. Se você tiver muitos dados estáticos grandes, eu recomendaria definitivamente o S3 ou uma CDN.
Fantástico. Você já teve alguma limitação de tamanho de arquivo? Eu não acho que Firebase foi feito com multi-megabytes cordas em mente ...
MasterScrat
8
O Firebase tem um limite de 10mb (de dados de string codificados em utf8). Se sua imagem for maior, será necessário dividi-la em pedaços de 10 MB. Você está certo, porém, de que o Firebase é mais otimizado para cadeias pequenas que mudam frequentemente, em vez de cadeias de vários megabytes. Se você tiver muitos dados estáticos grandes, eu recomendaria definitivamente o S3 ou uma CDN.
Michael Lehenbauer
14
O Firebase realmente precisa adicionar um armazenamento maior ao sistema de hospedagem ou uma instância s3 com APIs incorporadas em suas bibliotecas.
precisa saber é o seguinte
9
@The_Brink Obrigado pelo feedback. Definitivamente, isso está no nosso radar!
Michael Lehenbauer
4
@ezain Isso está correto. Provavelmente, eu não recomendaria essa abordagem para grandes sites de produção (você realmente deseja um serviço de veiculação de imagens apoiado por CDN), mas é fácil e "bom o suficiente" para muito uso.
Michael Lehenbauer
25
Sim, você pode armazenar e visualizar imagens no Firebase. Você pode usar um filepicker para obter o arquivo de imagem. Então você pode hospedar a imagem como quiser, eu prefiro o Amazon s3. Depois que a imagem estiver hospedada, você poderá exibi-la usando o URL gerado para a imagem.
O único problema com esta abordagem é que, quando as imagens são grandes, movendo-os em todas as actividades faz com que o aplicativo lento e em alguns casos de acidente
Ojonugwa Jude Ochalifu
10
Você também pode usar um serviço chamado Filepickerque armazenará sua imagem em seus servidores e o Filepicker, que agora é chamado Filestack, fornecerá um URL para a imagem. Você pode armazenar o URL no Firebase.
Eu vi esse serviço pelo seu comentário. Tentei, mas não estou muito feliz com isso.
precisa saber é
3
Existem algumas maneiras de fazer o primeiro que fiz no Grendal2501. Fiz isso de forma semelhante ao user15163, você pode armazenar o URL da imagem na base do firebase e hospedar a imagem no host da firebase ou também no Amazon S3;
Erro 403 ao tentar inserir e renderizar imagens - com problemas de permissão nas imagens após o upload - qualquer informação sobre como você configura o upload. Tentei usar o acl: 'public-read' - mas o upload falhou - com um 403. Qualquer documento de política de informações e política de bucket que pudesse ajudar - seria ótimo. AWS - a documentação é difícil e não há informações de depuração com erro além do acesso negado.
Jamie
2
Faça isso como outra questão #
Jakob Hartman
boa idéia :) feito - embora a pilha possa ser diferente - se houver algum estímulo que você possa me dar - seria bem-vindo. A depuração de erros do AWS S3 é super frustrante - pelo menos até agora. stackoverflow.com/questions/31998827/…
jamie
2
O uso da string Base64 no JSON será muito pesado. O analisador precisa fazer muito trabalho pesado. Atualmente, o Fresco suporta apenas suporte básico Base64. Melhor você colocar algo no Amazon Cloud ou Firebase Cloud. E obtenha uma imagem como um URL. Para que você possa usar Picasso ou Glide para armazenamento em cache.
Respostas:
Atualização (20160519) : O Firebase acaba de lançar um novo recurso chamado Firebase Storage . Isso permite carregar imagens e outros dados não JSON em um serviço de armazenamento dedicado. É altamente recomendável que você use isso para armazenar imagens, em vez de armazená-las como dados codificados em base64 no banco de dados JSON.
Você certamente pode! Dependendo do tamanho das suas imagens, você tem algumas opções:
1. Para imagens menores (abaixo de 10mb)
Temos um exemplo de projeto que faz isso aqui: https://github.com/firebase/firepano
A abordagem geral é carregar o arquivo localmente (usando o FileReader) para que você possa armazená-lo no Firebase da mesma forma que faria com qualquer outro dado. Como as imagens são arquivos binários, você deseja obter o conteúdo codificado em base64 para poder armazená-lo como uma string. Ou ainda mais conveniente, você pode armazená-lo como um dado: url, que está pronto para aparecer como o src de uma tag img (é o que o exemplo faz)!
2. Para imagens maiores
O Firebase tem um limite de 10mb (de dados de string codificados em utf8). Se sua imagem for maior, será necessário dividi-la em pedaços de 10 MB. Você está certo, porém, de que o Firebase é mais otimizado para cadeias pequenas que mudam frequentemente, em vez de cadeias de vários megabytes. Se você tiver muitos dados estáticos grandes, eu recomendaria definitivamente o S3 ou uma CDN.
fonte
Sim, você pode armazenar e visualizar imagens no Firebase. Você pode usar um filepicker para obter o arquivo de imagem. Então você pode hospedar a imagem como quiser, eu prefiro o Amazon s3. Depois que a imagem estiver hospedada, você poderá exibi-la usando o URL gerado para a imagem.
Espero que isto ajude.
fonte
Acabei armazenando as imagens no formato base64. Eu os traduzo de seu valor base64 quando retornados da firebase.
fonte
Você também pode usar um serviço chamado
Filepicker
que armazenará sua imagem em seus servidores e o Filepicker, que agora é chamado Filestack, fornecerá um URL para a imagem. Você pode armazenar o URL no Firebase.fonte
Existem algumas maneiras de fazer o primeiro que fiz no Grendal2501. Fiz isso de forma semelhante ao user15163, você pode armazenar o URL da imagem na base do firebase e hospedar a imagem no host da firebase ou também no Amazon S3;
fonte
O uso da string Base64 no JSON será muito pesado. O analisador precisa fazer muito trabalho pesado. Atualmente, o Fresco suporta apenas suporte básico Base64. Melhor você colocar algo no Amazon Cloud ou Firebase Cloud. E obtenha uma imagem como um URL. Para que você possa usar Picasso ou Glide para armazenamento em cache.
fonte