Estoy recibiendo el error
getdocuments.com.google.firebase.firestore.FirebaseFirestoreException: PERMISSION_DENIED: Permisos faltantes o insuficientes.
para el siguiente código en la declaración else
db.collection("users")
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (DocumentSnapshot document : task.getResult()) {
s(document.getId() + " => " + document.getData());
}
} else {
s("Error getting documents."+ task.getException());
}
}
});
android
firebase
google-cloud-firestore
S Rekhu
fuente
fuente
Respuestas:
Simplemente funciona para mí.
Vaya a Base de datos -> Reglas ->
Cambiar
allow read, write: if
falso; a verdadero;fuente
Vaya a Base de datos -> Reglas :
Luego cambió debajo de las reglas
a continuación
fuente
Entonces, en mi caso, tenía las siguientes reglas de base de datos:
Como puede ver, hay un
uid
campo en elstory
documento para marcar al propietario.Luego, en mi código, estaba consultando todas las historias (Flutter):
Y falló porque ya agregué algunas historias a través de diferentes usuarios. Para solucionarlo, debe agregar una condición a la consulta:
Más detalles aquí: https://firebase.google.com/docs/firestore/security/rules-query
EDITAR: desde el enlace
fuente
Las respuestas votadas anteriormente son peligrosas para la salud de su base de datos. Aún puede hacer que su base de datos esté disponible solo para leer y no para escribir:
fuente
Si lo intenta en la aplicación Java Swing.
Ir a la
Firebase Console
>Project Overview
>Project Settings
Luego vaya a la pestaña Cuentas de servicio y luego haga clic en Generar nueva clave privada.
Obtendrá un archivo .json, colóquelo en una ruta conocida
Luego, vaya a Propiedades de Mi PC, Configuración avanzada del sistema, Variables de entorno.
Cree un nuevo
GOOGLE_APPLICATION_CREDENTIALS
valor de variable de ruta con su ruta al archivo json.fuente
npm i --save firebase @ angular / fire
en app.module asegúrese de haber importado
en importaciones
en las reglas de la base de datos en tiempo real, asegúrese de tener
en las reglas de Cloud Firestore, asegúrese de tener
fuente
asegúrese de que su base de datos no esté vacía ni que su consulta sea para una colección que no existe
fuente
Además, puede obtener este error si la referencia de la colección de su código no coincide con el nombre de la colección en firebase.
Por ejemplo, el nombre de la colección en firebase es
users
, pero la referencia condb.collection("Users")
odb.collection("user")
También distingue entre mayúsculas y minúsculas.
Espero que esto ayude a alguien
fuente
add
oset
, pero de la pregunta es unaget
solicitud. He experimentado esto antesVerifique si la cuenta de servicio se agrega en
IAM & Admin
https://console.cloud.google.com/iam-admin/iam con una función adecuada, como Editorfuente
Si alguien aterriza aquí intentando acceder a Firestore con una cuenta de servicio:
Resolví este problema otorgando a la cuenta de servicio el
Service Account User
rol además delCloud Datastore User
rol en la configuración de IAM de GCP.fuente
En este momento, junio de 2020, de forma predeterminada, la base de fuego está definida por tiempo. Defina el tiempo para satisfacer sus necesidades.
Tenga en cuenta: su base de datos todavía está abierta para cualquiera. Le sugiero que lea la documentación y configure la base de datos de la forma que le resulte útil.
fuente
el problema es que intentó leer o escribir datos en la base de datos en tiempo real o en el almacén de incendios antes de que el usuario se haya autenticado. Intente comprobar el alcance de su código. espero que haya ayudado!
fuente
Tuve este error con Firebase Admin, la solución fue configurar Firebase Admin correctamente siguiendo este enlace
fuente
Para mí fue el problema de la fecha. Se actualizó y se resolvió el problema.
Permitir lectura / escritura:
Editar: si aún está confundido y no puede averiguar cuál es el problema, solo eche un vistazo a la sección de reglas en su consola de base de fuego.
fuente
el límite de tiempo puede haber terminado
hay fecha de cambio para hoy en esta línea:
fuente
https://console.firebase.google.com
Desarrollar -> Base de datos -> Reglas -> establecer lectura, escritura -> verdadero
fuente
Sus reglas deberían ser así para este caso, sin embargo, el mensaje dice que no es la forma sugerida, pero si hace esto, puede hacer inserciones sin error de permiso.
fuente