Firebase Storage

Quando eu salvo imagens no storage do firebase, essas imagens tem que ter a URL publica, pois vou salvar a mesma no banco e entregar para o usuário certo. Alguem sabe dizer se o firebase tem alguma prevenção para usuários mal-intencionados poderem acessar as imagens de forma massiva, consumindo a largura de banda e aumentando os custos de armazenamento e tráfego de rede.

Você vai precisar trabalhar as regras do seu storage em conjunto com authentication do firebase. Assim você consegue ter a segurança que precisa conforme sua necessidade.

Regras do storage: https://firebase.google.com/docs/storage/security?hl=pt-br

Autenticação com firebase: https://firebase.google.com/docs/auth/web/start?hl=pt-br

Não entendi muito bem, pois no final da contas a url da imagem terá que ser publica, os meus usuarios que vão subir iamgens estarão autenticados, ok, mas os usuarios que vão consumir, não estarão, então ou deixo a url publica, ou forço o backend entregar uma url assinada com tempo de expiração para cada imagens? e a performance cairá?

Você pode criar regras de segurança. Por exemplo, você pode limitar o acesso a pessoas autenticadas, ou apenas para o criador do arquivo.

Também pode usar o AppCheck para garantir que as requisições venham da sua aplicação.

Da para diminuir os riscos, mas sempre existe a possibilidade de algum abuso de gente má intensionada.

O write ja é pra pessoas autenticadas na aplicação, quem upa as imagens no storage é o back, provindo de requisição autenticadas do usuario. Não entendi bem o appcheck, mas uma vez que a url da imagem é publica, as requisições a ela não ficariam vinculadas a minha aplicação, pois preciso disponibilizar a imagem pro front. Não encontrei nada dentro do firebase storage que limite a quantidade de request a uma imagem publica.
Usei o Appcheck apenas em Android até agora, não sei direito como funciona na web. https://firebase.google.com/docs/app-check/web/custom-provider?hl=pt-br Acredito que vocé pode encontrar o que precisa no link