Reputation: 444
I am learning Flutter with Firebase, and i want to perform Crud operations with firebase database.
Firebase Rules are:
"rules": {
".read": true,
".write": true
}
Code
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();
}
}
It Causes an Error:
[ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: PlatformException(-3, Permission denied, ) E/flutter (31408): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:569:7) E/flutter (31408): #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:159:18) E/flutter (31408): E/flutter (31408): #2 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:332:12) E/flutter (31408): #3 DatabaseReference.set (package:firebase_database/src/database_reference.dart:74:31) E/flutter (31408): #4 FirebaseDemoScreen.createRecord (package:learn/main.dart:77:32) E/flutter (31408): #5 FirebaseDemoScreen.build. (package:learn/main.dart:42:19) E/flutter (31408): #6 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:953:19) E/flutter (31408): #7 _InkResponseState.build. (package:flutter/src/material/ink_well.dart:1059:38) E/flutter (31408): #8 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24) E/flutter (31408): #9 TapGestureRecognizer.handleTapUp (package:flutter/src/gestures/tap.dart:522:11) E/flutter (31408): #10 BaseTapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:282:5) E/flutter (31408): #11 BaseTapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:217:7) E/flutter (31408): #12 PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:475:9) E/flutter (31408): #13 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:76:12) E/flutter (31408): #14 PointerRouter._dispatchEventToRoutes. (package:flutter/src/gestures/pointer_router.dart:122:9) E/flutter (31408): #15 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:377:8) E/flutter (31408): #16 PointerRouter._dispatchEventToRoutes (package:flutter/src/gestures/pointer_router.dart:120:18) E/flutter (31408): #17 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:106:7) E/flutter (31408): #18 GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:218:19) E/flutter (31408): #19 GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198:22) E/flutter (31408): #20 GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7) E/flutter (31408): #21 GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7) E/flutter (31408): #22 GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7) E/flutter (31408): #23 _rootRunUnary (dart:async/zone.dart:1206:13) E/flutter (31408): #24 _CustomZone.runUnary (dart:async/zone.dart:1100:19) E/flutter (31408): #25 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7) E/flutter (31408): #26 _invoke1 (dart:ui/hooks.dart:281:10) E/flutter (31408): #27 _dispatchPointerDataPacket (dart:ui/hooks.dart:190:5)
Upvotes: 0
Views: 1805
Reputation: 444
Solved I just Updated Android Studio, and then i restarted once invalidate cache and restarted android studio, Now its working for me.
Error
plugin project :firebase_core_web not found
was error still but database connection with firebase is built with the same code and firebase rules.
Upvotes: 1
Reputation: 1979
You are probably trying to access the wrong place, check the database that you are trying to access
https://github.com/firebase/quickstart-js/issues/239#issuecomment-417862631
https://github.com/firebase/quickstart-js/issues/239#issuecomment-465989989
You can refer to this issue for more answers if the previous one didn't do the trick for you
https://github.com/firebase/quickstart-js/issues/239
Upvotes: 1
Reputation: 395
make the rules to test mode an try [1]: https://i.sstatic.net/Xeeis.png
Upvotes: 2