J'essayais de stocker des données sur Firebase Cloud Firestore, mais après avoir exécuté mon application, cette erreur a été affichée dans le journal.
[Firestore]: Echec de l'écriture lors de l'enregistrement Backpaper / WSjZoirLf8WRBuGCVbUZ: Status {code = PERMISSION_DENIED, description = Permissions manquantes ou insuffisantes., cause = null}
Ceci fait partie de mon code.
fb=FirebaseFirestore.getInstance(); map=new HashMap<String>(); map.put("Name of Department",txtDepartment); map.put("Name of Student",txtStudentName); map.put("Registration No",txtRegNo); map.put("CGPA in Previous Semester",txtCgpa); map.put("Phone",txtPhoneNo); map.put("Email",txtEMail); map.put("Subject 1",txtSubject1); map.put("Subject 2",txtSubject2); map.put("Subject 3",txtSubject3); map.put("Subject 4",txtSubject4); map.put("Subject 5",txtSubject5); map.put("Payment Details(Rs.)",txtPaymentDetails); map.put("Payment Date",txtPaymentDate); fb.collection("Backpaper Registration").add(map).addOnCompleteListener(new OnCompleteListener<DocumentReference>() { @Override public void onComplete(@NonNull Task<DocumentReference> task) { if(task.isSuccessful()){ Toast.makeText(Backpaper.this, "Registration Successful", Toast.LENGTH_SHORT).show(); startActivity(new Intent(Backpaper.this,Academic.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP)); finish(); } } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Toast.makeText(Backpaper.this, e.getMessage(), Toast.LENGTH_SHORT).show(); } });
Quelqu'un peut-il m'aider?
3 Réponses :
Vous devriez consulter les Règles sur Firebase
Changer autoriser lire, écrire: si faux; à vrai;
Non:
Il n'est pas conseillé de choisir cette solution car elle rend le base de données non sécurisée.
Utilisez uniquement ceci à des fins de test.
Vous avez besoin du paramètre de règles Firebase sur la console Firebase.
Si vous vous êtes connecté au projet, le paramètre de règles peut ressembler à:
// Allow read/write access to all users under any conditions // Warning: **NEVER** use this rule set in production; it allows // anyone to overwrite your entire database. service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if true; } } }
Si vous venez de faire une démonstration de la fonction , vous appelez la définition des règles:
// Allow read/write access on all documents to any user signed in to the application service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if request.auth.uid != null; } } }
Le document le plus officiel que vous pouvez trouver ici.
https://firebase.google.com/docs/firestore/security/get-started
p >
Cela peut être dû au fait que vous n'avez pas donné les autorisations de lecture et d'écriture à Firebase.
Changez votre base de données Firebase en mode test.
1. Accédez à votre console de base de données Firebase
2. Accédez aux règles
3. Démarrez en mode test
Cela changera autoriser la lecture, l'écriture: vrai
Cela désactive la sécurité de la base de données, mais à des fins de test, il est conseillé
Avez-vous basculé la base de données Firebase en mode test?