Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Não acontece nada no banco do Firestore

Main.js:

import { doc, setDoc } from 'firebase/firestore';

useEffect (() => {        
        async function criarProduto(){
            
            try {
                await setDoc(doc(db, "cities", "LA"), {
                    name: "Los Angeles",
                    state: "CA",
                    country: "USA"
                });
                console.log("Documento adicionado com sucesso!");
            } catch (error) {
                console.error("Erro ao adicionar documento:", error);
            }
        }
        criarProduto()
    }, [])

Firebase.js:

import { initializeApp } from "firebase/app";
import { initializeAuth, getReactNativePersistence } from "firebase/auth";
import AsyncStorage from "@react-native-async-storage/async-storage";
import { API_KEY, AUTH_DOMAIN, PROJECT_ID, STORAGE_BUCKET, MESSAGING_SENDER_ID, APP_ID, MEASUREMENT_ID } from "@env";

import { getFirestore } from "firebase/firestore";

const firebaseConfig = {
  apiKey: API_KEY,
  authDomain: AUTH_DOMAIN,
  projectId: PROJECT_ID,
  storageBucket: STORAGE_BUCKET,
  messagingSenderId: MESSAGING_SENDER_ID,
  appId: APP_ID,
  measurementId: MEASUREMENT_ID,
};

const app = initializeApp(firebaseConfig);
const auth = initializeAuth(app, {
  persistence: getReactNativePersistence(AsyncStorage)
});

const db = getFirestore(app);

export {auth, db};
1 resposta
solução!

Baseado nos seus códigos Main.js e Firebase.js, parece que você está tentando adicionar um documento à sua coleção do Firestore dentro de um projeto React (ou React Native, considerando o uso de AsyncStorage). O código parece estar configurado corretamente para realizar essa tarefa. No entanto, para garantir que tudo funcione como esperado, vamos revisar alguns pontos importantes:

Verificações e Dicas

  1. Dependências Instaladas: Certifique-se de que todas as dependências necessárias para usar o Firebase e o Firestore em seu projeto estão instaladas corretamente. Isso inclui firebase e @react-native-async-storage/async-storage se você estiver em um projeto React Native.

  2. Correção de Importação no Main.js: Verifique se o db foi importado corretamente no seu arquivo Main.js a partir do Firebase.js. A linha de importação deve ser algo como:

    import { db } from './Firebase'; // Ajuste o caminho conforme necessário
    
  3. Configuração de Segurança no Firestore: No console do Firebase, verifique as regras de segurança do Firestore para garantir que você tem permissão para escrever na coleção cities. Se o seu projeto estiver em modo de desenvolvimento, as regras padrão podem restringir a leitura e escrita aos documentos.

  4. Verificação de Conexão de Rede: Se você estiver testando um aplicativo React Native em um dispositivo físico, certifique-se de que o dispositivo está conectado à internet. Falhas na rede podem impedir a comunicação com o Firestore.

  5. Uso do useEffect para Inicialização: Usar o useEffect com um array de dependências vazio ([]) é uma prática comum para executar lógica de inicialização (como carregar dados) em componentes funcionais do React. Certifique-se de que essa é a intenção e que o useEffect está no lugar correto no seu componente.

  6. Versões Compatíveis: As versões do Firebase e de suas dependências devem ser compatíveis entre si. Verifique a documentação do Firebase para garantir que você está usando versões que funcionam bem juntas.

  7. Console do Firebase para Debugging: Use o console do Firebase para verificar se o documento foi realmente adicionado à coleção. Se não foi, pode haver informações adicionais sobre erros na seção de funções ou no Firestore do console do Firebase.

Se você seguir essas dicas e garantir que tudo esteja configurado corretamente, seu código deverá funcionar como esperado, adicionando um novo documento à coleção cities no Firestore. Se você encontrar erros específicos ou tiver outras dúvidas, sinta-se à vontade para perguntar!

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software