我正在学习使用Firebase,我想使用firebase数据库执行Crud操作。

Firebase规则是:
"rules": {
".read": true,
".write": true
}码
import 'package:flutter/material.dart';
import 'package:firebase_database/firebase_database.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
primarySwatch: Colors.red,
// This makes the visual density adapt to the platform that you run
// the app on. For desktop platforms, the controls will be smaller and
// closer together (more dense) than on mobile platforms.
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: FirebaseDemoScreen(),
);
}
}
class FirebaseDemoScreen extends StatelessWidget {
final databaseReference = FirebaseDatabase.instance.reference();
@override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
appBar: AppBar(
title: Text('Firebase Connect'),
),
body: Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
RaisedButton(
child: Text('Create Record'),
onPressed: () {
createRecord();
},
),
RaisedButton(
child: Text('View Record'),
onPressed: () {
getData();
},
),
RaisedButton(
child: Text('Update Record'),
onPressed: () {
updateData();
},
),
RaisedButton(
child: Text('Delete Record'),
onPressed: () {
deleteData();
},
),
],
)
), //center
);
}
void createRecord(){
databaseReference.child("1").set({
'title': 'Mastering EJB',
'description': 'Programming Guide for J2EE'
});
databaseReference.child("2").set({
'title': 'Flutter in Action',
'description': 'Complete Programming Guide to learn Flutter'
});
}
void getData(){
databaseReference.once().then((DataSnapshot snapshot) {
print('Data : ${snapshot.value}');
});
}
void updateData(){
databaseReference.child('1').update({
'description': 'J2EE complete Reference'
});
}
void deleteData(){
databaseReference.child('1').remove();
}
}它导致一个错误:
错误:flutter/lib/ui/ui_dart_state.cc(166)未处理异常: PlatformException(-3,权限被拒绝),)E/颤振(31408):#0 (package:flutter/src/services/message_codecs.dart:569:7) E/颤振(31408):#1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:159:18) E/颤振(31408):E/颤振(31408):#2 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:332:12) E/颤振(31408):#3 (package:firebase_database/src/database_reference.dart:74:31) E/ DatabaseReference.set (31408):#4 FirebaseDemoScreen.createRecord (包:FirebaseDemoScreen.createRecord/main.dart:77:32)E/DatabaseReference.set (31408):#5 FirebaseDemoScreen.build。(包装:学习/主要。飞镖:42:19)E/ _InkResponseState._handleTap (31408):#6 _InkResponseState._handleTap _InkResponseState.build E/颤振(31408):#7 _InkResponseState.build。(package:flutter/src/material/ink_well.dart:1059:38) E/颤振(31408):#8 (package:flutter/src/gestures/recognizer.dart:182:24) E/颤振(31408):#9 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:522:11) E/颤振(31408):#10 BaseTapGestureRecognizer._checkUp (包装:颤振/src/手势/踢踏舞:282:5)E/颤振(31408):#11 (package:flutter/src/gestures/recognizer.dart:475:9) BaseTapGestureRecognizer.handlePrimaryPointer (包装:颤振/src/手势/踢踏舞:217:7)E/颤振(31408):#12 PrimaryPointerGestureRecognizer.handleEvent BaseTapGestureRecognizer.handlePrimaryPointer/颤振(31408):#13 PointerRouter._dispatch PointerRouter._dispatchEventToRoutes E/颤振(31408):#14 PointerRouter._dispatchEventToRoutes。(package:flutter/src/gestures/pointer_router.dart:122:9) E/颤振(31408):#15 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:377:8) E/颤振(31408):#16 PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:120:18) E/颤振(31408):#17 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:106:7)E/颤振(31408):#18 (package:flutter/src/gestures/binding.dart:218:19) E/颤振(31408):#19 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198:22) E/颤振(31408):#20 GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7) E/颤振(31408):#21 GestureBinding._flushPointerEventQueue (包装:GestureBinding.dispatchEvent/src)/手势/绑定。飞镖:102:7)E/颤振(31408):#22 (package:flutter/src/gestures/binding.dart:86:7) E/颤振(31408):#23 _rootRunUnary (飞镖:异步/zone.dart:1206:13)E/ _CustomZone.runUnary (31408):#24 _CustomZone.runUnary(飞镖:1100:19)E/颤振(31408):#25 _CustomZone.runUnaryGuarded (飞镖:异步)/zone.dart:1005:7) E/颤振(31408):#26 _invoke1 (飞镖:ui/钩子:10)E/颤振(31408):#27 _dispatchPointerDataPacket (飞镖:ui/钩子:190:5)
发布于 2020-07-21 06:02:47
解决了问题--我刚刚更新了Android,然后我重新启动了一次失效缓存并重新启动了android,现在它为我工作了。
误差
plugin project :firebase_core_web not found虽然还存在错误,但与防火墙的数据库连接是用相同的代码和防火墙规则构建的。
发布于 2020-07-19 09:06:22
使规则测试模式为try 1:https://i.stack.imgur.com/Xeeis.png
发布于 2020-07-19 12:48:47
您可能试图访问错误的位置,请检查您要访问的数据库。
mentioned.
https://github.com/firebase/quickstart-js/issues/239#issuecomment-417862631
https://github.com/firebase/quickstart-js/issues/239#issuecomment-465989989
如果上一个问题没有对你起作用,你可以参考这个问题来获得更多的答案。
https://stackoverflow.com/questions/62978161
复制相似问题