Creé una página de inicio de sesión que asigna sus datos en variables usando document.getElementByClassName . Así que estoy tratando de crear un nuevo documento en Firebase usando el nombre de la persona, almacenado en una variable (lo que podría traer algunos problemas) usando -- .doc(variableHere) -- pero no logré encontrar la manera.
let newUserPrimeiroNome = document.getElementsByClassName("primeiroNome"); let newUserSobrenome = document.getElementsByClassName("ultimoNome"); let newUserEmail = document.getElementsByClassName("email"); let newUserPassword = document.getElementsByClassName("senha"); let btn = document.getElementById("btn"); btn.addEventListener("click", criaNovoUsuario); function criaNovoUsuario() { db.collection("loginsSecretaria").doc(newUserPrimeiroNome) // <- error here .add({ primeiroNome: newUserPrimeiroNome[0].value, ultimoNome: newUserSobrenome[0].value, email: newUserEmail[0].value, senha: newUserPassword[0].value }).then(() => { console.log("Documento inserido com sucesso"); }).catch((error) => { console.log("Erro ao inserir documento: ", error); }); }pd.: perdon si no me exprese de manera muy clara
Cualquier variable debería funcionar siempre que la variable sea una cadena (no un objeto/matriz) y no coincida con ninguna de las restricciones documentadas por Google . Su problema aquí fue que está llamando a getElementsByClassName que devuelve una matriz de elementos. Necesita el valor del primer elemento, que puede obtener a través newUserPrimeiroNome[0].value ...
Tenga en cuenta, sin embargo, que usar un nombre como identificación probablemente no sea el mejor enfoque, ya que no es probable que sea único. Dos usuarios podrían tener el nombre John , por ejemplo, y entonces no tendría un documento único para cada uno de ellos... probablemente también quiera hacer alguna validación de datos antes de intentar usar la entrada creada por el usuario como un documento IDENTIFICACIÓN.