Como fazer upload de uma imagem para o armazenamento firebase e salvar o URL dessas imagens no banco de dados firestore em React + Firebase

Nov 26 2022
Recentemente, fiquei preso em uma pequena implementação enquanto trabalhava com o formulário de registro no react & firebase, onde queria salvar o URL das imagens carregadas em um documento do banco de dados firestore. Vamos explorá-lo neste artigo.
fonte da imagem: https://css-tricks.com/wp-content/uploads/2017/06/reactfirebase.png

Recentemente, fiquei preso em uma pequena implementação enquanto trabalhava com o formulário de registro no react & firebase, onde queria salvar o URL das imagens carregadas em um documento do banco de dados firestore.
Vamos explorá-lo neste artigo.

TL;DR
Vamos ver nossa demonstração em ação:

demonstração

Implementação:

Supõe-se que você tenha o aplicativo react clichê pronto com você e também tenha alguns pré-requisitos básicos conhecidos sobre como criar uma conta do firebase, um novo projeto e um novo aplicativo da web dentro dele e habilitar o banco de dados e o armazenamento do firestore a partir dele. Estaremos utilizando algumas bibliotecas para facilitar nossa vida que são:

  • material-ui (você pode usar qualquer framework css de sua escolha)
  • base de fogo

Agora, exportaremos algumas entidades, como app ,auth e storage object, e as usaremos em nosso app.js.

Vamos pular para o núcleo do nosso arquivo principal, primeiro tivemos um elemento de entrada material-ui e o envolvemos dentro de um manipulador de eventos handleSubmit.
Agora veremos de perto como podemos salvar o URL das imagens carregadas no banco de dados firestore para torná-lo acessível globalmente:

  • PASSO 1: armazenando a imagem carregada no armazenamento:
    Primeiro, criamos uma referência ao nosso armazenamento de imagens chamada storageRef e passamos para a função uploadBytesResumable que aceita essa referência e o arquivo necessário para fazer o upload. Para um procedimento mais detalhado, consulte isto .
  • PASSO 2: armazenando esta imagem como um URL no banco de dados do firestore:
    Criamos uma referência genérica ao nosso firestore chamada collectionRef que recebe 3 parâmetros que são o objeto db , o nome da coleção e o último é o id do documento (que pode ser gerado automaticamente ou algo significativo no contexto para o seu aplicativo, aqui, para simplificar, codifiquei o id do documento.
    Em seguida, temos um evento uploadTask.on() , que tem uma função de retorno de chamada dentro da qual usamos a função getDownloadURL baseada em promessa e obtivemos o URL das imagens na variável downloadURL Agora vem a
    parte importante que simplesmente colocamos este url em nosso documento usando a função updateDoc . (Observe que poderíamos ter feito uso da função setDoc , mas usamosupdateDoc porque queríamos atualizar alguns campos de um documento sem substituir o documento inteiro.

É isso, se você tiver alguma dúvida ou precisar de mais ajuda, me chame, obrigado por ler