firebase - Flutter 中的权限被拒绝 Firebase
问题描述
我正在尝试使用来自firebase应用程序的文本,每个文本的每个页面视图,但它给了我这个权限被拒绝的日志,我也尝试使用FutureBuilder,但它给出了同样的错误。
我的错误日志:
W/Firestore(28023):(0.6.6-dev)[Firestore]:侦听查询(teste)失败:状态{code=PERMISSION_DENIED,描述=缺少或权限不足。,原因=null} I/System.out( 28023):com.google.firebase.firestore.FirebaseFirestoreException:PERMISSION_DENIED:缺少权限或权限不足。W / Firestore(28023):(0.6.6-dev)[Firestore]:侦听查询(课程)失败:状态{code = PERMISSION_DENIED,描述=缺少或权限不足。,原因= null} I/System.out( 28023):com.google.firebase.firestore.FirebaseFirestoreException:PERMISSION_DENIED:缺少权限或权限不足。
编码:
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 类(我从firebase 获取课程文本文档快照,并放入我的文本):
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"),)
],
);
}
}
解决方案
该PERMISSION_DENIED
错误是由于Firestore 上设置的安全规则造成的。默认情况下,Firestore 上设置的规则要求用户经过身份验证才能访问。我建议重新访问节点上设置的规则来解决此问题。
推荐阅读
- html - 想要为将在相应列中搜索的每一列添加搜索框
- c++ - 是否有合理的替代重载和完美转发?
- python - 使用python将xml数据转储到csv文件中的单元格中
- node.js - 如何在node.js中的下一张相同类型的新幻灯片中添加幻灯片的溢出文本
- android - 只有当应用程序在后台时,React Native 才会接收远程推送通知
- datagrid - 如何删除与内部表中行号不同的 DDIC 表记录?
- javascript - 上传json/shp/kml/kmz文件并转换成geojson
- javascript - 是否可以使用 python 后端在 Angular 中打开 Labelimg?
- json - 使用 jq 根据值条目创建新 JSON
- swift - 通过 UnsafeMutableRawPointer 导出 SwiftUI 视图