1
votes

Face à un problème lié à Firebase Cloud Firestore

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?


1 commentaires

Avez-vous basculé la base de données Firebase en mode test?


3 Réponses :


1
votes

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.


0 commentaires

1
votes

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 >


0 commentaires

0
votes

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

Firestore, démarrer en ** mode test ** Cela désactive la sécurité de la base de données, mais à des fins de test, il est conseillé


0 commentaires