0

I'm trying to use to use the texts from firebase app, each Page View for each text, but it's giving me this log of permissions denied, i've also tried using FutureBuilder but it was giving the same error.

My error log :

W/Firestore(28023): (0.6.6-dev) [Firestore]: Listen for Query(teste) failed: Status{code=PERMISSION_DENIED, description=Missing or insufficient permissions., cause=null} I/System.out(28023): com.google.firebase.firestore.FirebaseFirestoreException: PERMISSION_DENIED: Missing or insufficient permissions. W/Firestore(28023): (0.6.6-dev) [Firestore]: Listen for Query(lessons) failed: Status{code=PERMISSION_DENIED, description=Missing or insufficient permissions., cause=null} I/System.out(28023): com.google.firebase.firestore.FirebaseFirestoreException: PERMISSION_DENIED: Missing or insufficient permissions.

The code:

    class LessonPage extends StatelessWidget {
  final LessonData lessonData;

  LessonPage(this.lessonData);

  @override
  Widget build(BuildContext context) {

    return StreamBuilder<QuerySnapshot>(
      stream: Firestore.instance.collection("lessons").snapshots(),
      builder: (context, snapshot) {
        if (snapshot.hasError) {
          return Center(
            child: Text(
              "An Has Error Occurred",
              style: TextStyle(color: Colors.red, fontSize: 24.0),
            ),
          );
        }
        switch (snapshot.connectionState) {
          case ConnectionState.waiting:
            return Center(
              child: CircularProgressIndicator(),
            );
          case ConnectionState.none:
            {
              return Center(
                child: Text(
                  "Without Connection!",
                  style: TextStyle(color: Colors.red, fontSize: 24.0),
                ),
              );
            }
          case ConnectionState.done:
          case ConnectionState.active:

          default:
          return PageView.builder(
            itemBuilder: (context, index) {
              return LessonWidget(
                  LessonData.fromDocument(snapshot.data.documents[index]));
            },
            itemCount: snapshot.data.documents.length,
          );
        }
      },
    );
  }
}

LessonWidget class(i'm getting the lesson text document snapshot from firebase, and putting in my Text):

    class LessonWidget extends StatelessWidget {
  final LessonData lessonData;

  LessonWidget(this.lessonData);

  @override
  Widget build(BuildContext context) {

    return ListView(
      children: <Widget>[
        Text("${lessonData.text == null ? lessonData.text : "" }", style:
        TextStyle(color: Colors.black54, fontSize: 30.0),),
        SizedBox(height: 18.0,),
        TextField(
          decoration: InputDecoration(
              hintText: "Escreva a sua resposta aqui"
          ),
          autofocus: true,
        ),
        SizedBox(height: 10.0,),
        RaisedButton(onPressed: () {

        },
          color: Theme
              .of(context)
              .primaryColor,
          child: Text("Continuar"),)
      ],
    );

  }
}
Frank van Puffelen
  • 565,676
  • 79
  • 828
  • 807

1 Answers1

0

The PERMISSION_DENIED error was due to the security rules set on Firestore. By default, the rules set on Firestore requires users to be authenticated for access. I suggest revisiting the rules set on your node to resolve this issue.

Omatt
  • 8,564
  • 2
  • 42
  • 144