Yo uso firebase firestore db. Este proyecto tiene dos colecciones principales "securecollection" y "publiccollection". La colección segura es donde se almacenan todos los datos importantes y solo pueden acceder a ellos los usuarios autenticados. Pero para que cierta información sea visible para los usuarios invitados, la estoy copiando en la colección pública. Luego, quiero guardar la identificación de este documento público recién creado en el documento seguro.
Cuando escribo una variable db.collection('securecollection').doc(secureDocid).update({ dentro de la oración de consulta, aparece este error:
No capturado (en promesa) TypeError: o.indexOf no es una función
Si escribo la identificación como texto db.collection('securecollection').doc('7llDqIWlmE5VM69Zzle2').update({ , el código funciona.
Aquí está mi código:
function toggleOlustur(secureDocid) { const db = firebase.firestore(); db.collection("securecollection").get() .then(querySnapshot => { querySnapshot.forEach(doc => { if (doc.id == secureDocid) { db.collection("publiccollection").add({ oad: doc.data().oad, osad: doc.data().osad, opuan: doc.data().opuan, odtarih: doc.data().odtarih, odurum: "1", }) .then((docRef) => { db.collection('securecollection').doc(secureDocid).update({ preference: docRef.id }) }); } }); }); }El método doc() espera un argumento de cadena y, por el mensaje de error, parece que su secureDocid no es un valor de cadena. Si console.log(JSON.stringify(secureDocid)) puede ver lo que genera, lo que podría ayudar a resolver el problema.