【问题标题】:No Firebase App has been created - call Firebase.initializeApp [duplicate]没有创建 Firebase 应用程序 - 调用 Firebase.initializeApp [重复]
【发布时间】:2021-04-10 19:14:06
【问题描述】:

[core/no-app] 没有创建 Firebase 应用“[DEFAULT]” - 调用 Firebase.initializeApp()

我有点理解错误,但无论我把它放在哪里,它都不起作用...... 我试图从 firebase 只返回一个字符串和一个数值。我也做了所有的要求。 build.graddle 在 android 文件夹中, build.gradle 在 android/app 文件夹中。一切。除此之外,我还做了: cloud_firestore:

到 pubspec.yaml 的依赖项。现在我的 main.dart 看起来像这样,但是给出了很多我无法粘贴到这里的错误。它很长。我以这个视频为基础,但它不起作用..

import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}
class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);
  final String title;
  @override
  _MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;
  void _incrementCounter() {
    setState(() {
      _counter++;
    });
  }

  Widget _buildListItem(BuildContext context, DocumentSnapshot document) {
    return ListTile(
      title: Row(
        children: [
          Expanded(
            child: Text(
              document.data()['adSoyad'],
            ),
          ),
          Container(
            decoration: const BoxDecoration(
              color: Color(0xffddddff),
            ),
            padding: const EdgeInsets.all(10.0),
            child: Text(
              document.data()['yas'].toString(),
              style: Theme.of(context).textTheme.headline4,
            ),
          ),
        ],
      ),
      onTap: () {
        print("bisey");
      },
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: StreamBuilder(
          stream: FirebaseFirestore.instance.collection('tablolar').snapshots(),
          builder: (context, snapshot) {
            if (!snapshot.hasData) return const Text('Loading...');
            return ListView.builder(
              itemExtent: 80.0,
              itemCount: snapshot.data.documents.length,
              itemBuilder: (context, index) =>
                  _buildListItem(context, snapshot.data.documents[index]),
            );
          }),
    );
  }
}

【问题讨论】:

    标签: android firebase flutter google-cloud-firestore


    【解决方案1】:

    在 main 函数中添加这两行并使你的函数异步。像这样

     void main() async {
     WidgetsFlutterBinding.ensureInitialized();
     await Firebase.initializeApp();
     runApp(MyApp());
     } 
    

    还有一件事,您还需要将 firebase_core 添加到您的项目中。否则firebase会抛出错误

    在您的 pubsec.yaml 文件中添加 firebase 核心

      firebase_core: ^0.5.3
    

    然后将其导入您的 main.dart

    import 'package:firebase_core/firebase_core.dart';
    

    【讨论】:

    • 这行得通,谢谢!但为什么?我在官方文档中没有看到。这太烦人了。我在互联网上到处找东西。
    • 这是由于最近的 firebase 包更新,它必须在代码运行时提供当前用户作为 getter,而不是异步请求它。你甚至不必在 main.dart 中初始化它。您可以在您的应用需要使用 firebase 的任何位置初始化它。
    猜你喜欢
    • 2020-12-24
    • 2020-04-30
    • 2021-12-29
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    • 2020-05-21
    • 2020-12-12
    相关资源
    最近更新 更多