Estoy tratando de permitir que los usuarios registrados creen un documento en la base de datos de Firestore. Para eso, quiero usar el token seguro que crea Firebase Authentication después de que un usuario inicia sesión con el método de correo electrónico/contraseña.
En Firebase Realtime Database, por ejemplo, puedo hacer una solicitud de publicación con axios donde incluyo el token seguro como este:
axios.post('https://project_name.europe-west1.firebasedatabase.app/posts.json?auth=' + token, postData)y en las Reglas de la base de datos en tiempo real tengo:
{ "rules": { ".read": true, ".write": "auth != null" } }Así que eso funciona bien hasta ahora.
Pero con el SDK 9 con el enfoque modular, no sé cómo transmitir el token seguro.
Aquí está la solicitud addDoc:
const docRef = await addDoc(collection(db, 'posts'), { postData })Estuve leyendo la documentación de la nube durante horas, pero no pude averiguar cómo proceder desde aquí.
Solo encontré esto para agregar datos en general:https://firebase.google.com/docs/firestore/manage-data/add-data
y esto para consultar datos de forma segura:https://firebase.google.com/docs/firestore/security/rules-query
Si también usa Firebase SDK para la autenticación, no necesita agregar ningún token. El SDK verificará el estado de autenticación y lo hará por usted.
const docRef = await addDoc(collection(db, 'posts'), { postData }) La operación anterior agregará un documento en la colección de posts si las reglas de seguridad de Firestore permiten que el usuario actual escriba allí.
¿También está utilizando la API REST para la autenticación? Entonces, es posible que también deba usar la API REST para Firestore y pasar el token de autenticación usted mismo.