微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

firebase 与 flutter 应用程序没有连接

如何解决firebase 与 flutter 应用程序没有连接

有什么问题吗? 在非连接小部件运行之后,加载小部件正在工作 我该如何解决这个问题

我的代码

import 'package:Flutter/cupertino.dart'; import 'package:Flutter/material.dart'; import 'package:Flutter/services.dart'; import 'package:marwa_app/component/myResponsiveLibrary.dart'; import 'package:marwa_app/component/logo.dart'; import 'package:marwa_app/component/MyDrawer.dart'; import 'package:geolocator/geolocator.dart'; import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:firebase_core/firebase_core.dart';

class Reporting extends StatefulWidget {   @override  
_ReportingState createState() => _ReportingState(); }

class _ReportingState extends State<Reporting> {   final formKey = GlobalKey<FormState>();   final scaffoldKey = GlobalKey<ScaffoldState>();

  Boxdecoration Boxdecoration() {
    return Boxdecoration(
      color: MainModel().mainColor,borderRadius: BorderRadius.all(Radius.circular(40.0)),BoxShadow: [
        BoxShadow(
          color: Colors.black.withOpacity(0.15),spreadRadius: 5,blurRadius: 5,offset: Offset(2,2),// changes position of shadow
        ),],);   }

  TextStyle titleStyle() {
    return TextStyle(
        color: MainModel().whiteColor,fontSize: MainModel().setFont(MainModel().largeFont,getWidth()));   }

  TextStyle textStyle() {
    return TextStyle(
      color: MainModel().whiteColor,fontSize: MainModel().setFont(MainModel().middleFont,getWidth()),);   }

  double getWidth() {
    return MediaQuery.of(context).size.width;   }

  final _name = TextEditingController();   final _phone = TextEditingController();   final _emType = TextEditingController();  double lat;   double lon;   bool _initialized = false;   bool _error
= false;

  void initializeFlutterFire() async {
    try {
      await Firebase.initializeApp();
      setState(() {
        _initialized = true;
      });
    } catch(e) {
      // Set `_error` state to true if Firebase initialization fails
      setState(() {
        _error = true;
      });
    }   }

  @override   void initState() {
    initializeFlutterFire();
    super.initState();   }   @override   Widget build(BuildContext context) {
    if(_error) {
      return notConnection();
    }
    if (!_initialized) {
      return Loading();
    }
    return isConnection();   }

  Widget isConnection() {
    final widthScreen = MediaQuery.of(context).size.width;
    return Scaffold(
        key: scaffoldKey,backgroundColor: MainModel().mainColor,appBar: AppBar(
          backgroundColor: Color(0xff323266),leading: IconButton(
              icon: Icon(
                Icons.notifications_active,color: MainModel().thirdColor,),onpressed: () => {}),title: logo(),centerTitle: true,actions: [
            Builder(
              builder: (context) => IconButton(
                icon: Icon(
                  Icons.menu,onpressed: () => Scaffold.of(context).openEndDrawer(),tooltip: MaterialLocalizations.of(context).openAppDrawerTooltip,endDrawer: Drawer(
          child: MyDrawer(),body: ListView(
          padding: EdgeInsets.only(
              top: MainModel()
                  .setPadding(MainModel().largePadding,widthScreen)),children: [
            Form(
                key: formKey,child: Column(
                  children: [
                    Directionality(
                      textDirection: TextDirection.rtl,child: Container(
                        padding: EdgeInsets.symmetric(horizontal: 20),margin: EdgeInsets.symmetric(horizontal: 20),alignment: Alignment.centerRight,decoration: Boxdecoration(),child: TextFormField(
                          controller: _name,textDirection: TextDirection.rtl,autofocus: true,decoration: Inputdecoration(
                              border: InputBorder.none,hintStyle: textStyle(),hintText: 'الاسم الرباعي'),validator: (value) {
                            if (value.isEmpty) {
                              return "يرجى ادخل الاسم";
                            } else {
                              return null;
                            }
                          },Padding(
                      padding: EdgeInsets.only(
                          top: MainModel().setPadding(
                              MainModel().middlePadding,Directionality(
                      textDirection: TextDirection.rtl,child: TextFormField(
                          controller: _phone,keyboardType: TextInputType.number,hintText: 'رقم الهاتف'),validator: (value) {
                            if (value.isEmpty) {
                              return "يرجى ادخال رقم الهاتف";
                            } else {
                              return null;
                            }
                          },child: TextFormField(
                          controller: _emType,hintText: 'نوع الابلاغ'),validator: (value) {
                            if (value.isEmpty) {
                              return "يرجى ادخال نوع الابلاغ (الحالة)";
                            } else {
                              return null;
                            }
                          },Container(
                      child: GestureDetector(
                          onTap: () async {
                            bool isLocationServiceEnabled =
                                await Geolocator.isLocationServiceEnabled();
                            if (isLocationServiceEnabled == true) {
                              Position position =
                                  await Geolocator.getCurrentPosition(
                                      desiredAccuracy: LocationAccuracy.high);
                              lon = position.longitude;
                              lat = position.latitude;
                            } else {
                              print(
                                  'امنح التطبيق من الوصول الى موقع... ثم اعد الارسال');
                            }
                          },child: Image.asset('images/location.png')),Padding(
                        padding: EdgeInsets.only(
                            bottom: MainModel().setPadding(
                                MainModel().largePadding * 2,widthScreen))),RaisedButton(
                      onpressed: () {
                        Firebase.initializeApp();
                        if (formKey.currentState.validate()) {
                          // save data in firebase

                          FirebaseFirestore.instance
                              .collection('Data')
                              .doc()
                              .set({
                            'name': _name,'phone': _phone,'em-type': _emType,});

                          scaffoldKey.currentState.showSnackBar(SnackBar(
                              content: Text('تم ارسال بياناتك .... '
                                  'سيتم التواصل معك من الجهات المختصة')));
                        }
                      },child: Text('ارسال'),)
                  ],))
          ],));   }

  Widget notConnection() {
    final widthScreen = MediaQuery.of(context).size.width;
    return Scaffold(
        key: scaffoldKey,body: ListView(
            padding: EdgeInsets.only(
                top: MainModel()
                    .setPadding(MainModel().largePadding,children: [
              Container(
                child: Center(
                  child: Text('not Connection of Database'),)
            ]));   }

  Widget Loading() {
    final widthScreen = MediaQuery.of(context).size.width;
    return Scaffold(
        key: scaffoldKey,body: Container(
    child: Center(
        child: Text('Loading'),)
    );   } }

我在编译器上没有任何错误,但没有连接 firebase。 只是我想从 textfeild 获取数据并保存在 firebase 中。 我的数据是(姓名、电话、位置、紧急情况类型)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?