Soy relativamente nuevo en la codificación y estoy teniendo problemas.
Tengo este código para enviar datos a firebase
app.userid = app.user.uid
var userRef = app.dataInfo.child(app.users);
var useridRef = userRef.child(app.userid);
useridRef.set({
locations: "",
theme: "",
colorScheme: "",
food: ""
});
Sin embargo, sigo recibiendo el error:
ADVERTENCIA DE INCENDIO: establecido en / users / (GoogleID) falló: permission_denied 2016-05-23 22: 52: 42.707 firebase.js: 227 No capturado (en promesa) Error: PERMISSION_DENIED: Permiso denegado (...)
Cuando trato de buscar esto, habla de las reglas para Firebase, que parece estar en un idioma que aún no he aprendido (o simplemente me está pasando por la cabeza). ¿Alguien puede explicar qué está causando el problema? Pensé que era porque estaba pidiendo que almacenara el correo electrónico y el nombre para mostrar del usuario y simplemente no se me permitía hacer esto, pero cuando los saqué, todavía tenía el mismo problema. ¿Hay alguna manera de evitar este error sin establecer las reglas, o las reglas son algo que puedo aprender a escribir en un día, o simplemente estoy fuera de mi alcance?
¡Gracias por cualquier ayuda!
fuente
Estaba enfrentando un problema similar y descubrí que este error se debía a reglas incorrectas establecidas para las operaciones de lectura / escritura para la base de datos en tiempo real. Por defecto, google firebase actualmente carga la tienda en la nube, no la base de datos en tiempo real. Necesitamos cambiar al tiempo real y aplicar las reglas correctas.
Como podemos ver, dice que Cloud Firestore no es una base de datos en tiempo real, una vez que se cambia a la base de datos correcta, aplique las siguientes reglas:
fuente
Vaya a la opción "Base de datos" que mencionó.
Copiado de aquí .
fuente
Ir a la base de datos, al lado del título hay 2 opciones:
Cloud Firestore, base de datos en tiempo real
Seleccione la base de datos en tiempo real y vaya a las reglas
cambia las reglas a verdadero.
Esto resolvió mi problema.
fuente
funciona..!!
fuente
OK, ¡pero no quieres abrir toda la base de datos en tiempo real! Necesitas algo como esto.
o
fuente
Otra solución es crear o iniciar sesión automáticamente en el usuario si ya tiene las credenciales a mano. Así es como lo hago usando Plain JS.
fuente