Estoy trabajando con reaccionar y firebase ver 9. Como firebase ofrece un campo limitado y necesito enviar algunos datos más mientras registro a un usuario. Vi que puede hacer esto mientras carga un documento cada vez que un usuario se registra. He escrito el código pero cuando lo ejecuto solo los usuarios están registrados pero mi documento no se carga.
Aquí está mi código:
import { useState } from "react" import { auth, db } from "../Authentication/firebaseConfig" import { createUserWithEmailAndPassword } from "firebase/auth" import { collection, setDoc, addDoc,doc } from "firebase/firestore"; export const useSignup = () => { const [error, setError] = useState(null) const signup = async (email, password, displayName) => { setError(null) const current_user = await createUserWithEmailAndPassword(auth, email, password, displayName); const uid = current_user.user.uid; await addDoc(collection(db, "users"), { uid: uid, displayName, email, }) .then((res) => { console.log('user signed up:', res.user) }) .catch((err) => { setError(err.message) }) } return { error, signup } }Según lo declarado por @Danial, el error fue producido por las Reglas de Cloud Firestore que se establecieron en false .
Regla de muestra:
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if false; } } } La regla de ejemplo de Firestore anterior le prohibirá leer y escribir en cualquier colección y documento. Cambiarlo a true permite que el público lea y escriba en Firestore.