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?