Estoy tratando de agregar otro valor de campo en un documento, pero firebase devuelve TypeError: n.indexOf no es una función. Aquí está el código:
async function linkLCSN(cor, sn) { try { await setDoc(doc(db, "cor", cor), { sn: sn, }, {merge: true}); } catch(e) { console.error(e); } }Ya lo logré de esta manera, pero no sé por qué esta vez me sigue dando este error. Este es el código de trabajo:
async function submitToDatabase(name, email, cor, cs, cn, concern) { try { //Set Datas await setDoc(doc(db, "cor", cor), { name: name, email: email, cor: cor, courseSection: cs, contactNumber: cn, isViewed: false, timestamp: serverTimestamp(), }, {merge: true}); const docRef = await addDoc(collection(db, "cor", cor, "concerns"), { concernData: concern, }); console.log("Yung betlog nasa:" + docRef.id); //Do page changes let a = document.querySelector(".concern-main-container"); let b = document.querySelector(".concern-preview-container"); a.style.display = "none"; b.style.display = "block"; } catch(e) { console.error(e); //Custom Alert } }Supongo que está usando v9 de firebase (versión modular). Puede sonar tonto, pero asegúrese de haber inicializado su aplicación y de que está utilizando una referencia válida a una colección.
Por ejemplo:
import { initializeApp } from 'firebase/app'; import { getFirestore } from 'firebase/firestore'; const config = {/** your firebase config properties **/}; const app = initializeApp(config); const db = getFirestore(app);Luego, para agregar un nuevo documento, puede hacer:
const createDocument = (collectionName, document) => { const colRef = collection(db, collectionName); return addDoc(colRef, document); };Recuerde que la función addDoc devuelve una promesa, así que asegúrese de manejar esta es la persona que llama de createDocument
Resolví mi problema comprobando todos los tipos de parámetros que pasaban a doc() , que los parámetros no deberían ser Integer . debe ser String