gpt4 book ai didi

firebase - Flutter Web - 未创建 Firebase 应用程序 '[DEFAULT]' - 调用 Firebase App.initializeApp() (app/no-app)

转载 作者:行者123 更新时间:2023-12-04 07:42:47 24 4
gpt4 key购买 nike

我知道有很多非常相似的问题;但他们的解决方案都不适合我。我都试过了。 PS:我希望问题与我的 index.html 有关
问题:我正在使用 Firebase(在 Flutter web 上)并且我正在尝试通过它对用户进行身份验证。但是,在我尝试向其添加 Firebase 以使其正常工作后,我的网站甚至无法启动(空白屏幕)。我很感激一些帮助解决这个问题!
错误:尚未创建 Firebase 应用“[DEFAULT]” - 调用 Firebase App.initializeApp()
(应用程序/无应用程序)
备注:该问题发生在 Flutter 网页上,但适用于我的 Android 手机。此外,我花了几个小时查找所有类似问题的每个答案,但没有一个解决方案有效。另外,这是我第一次提问,所以如果我做错了什么,请告诉我。谢谢!
错误输出:

To hot restart changes while running, press "r" or "R".
For a more detailed help message, press "h". To quit, press "q".
FirebaseError: Firebase: No Firebase App '[DEFAULT]' has been created - call Firebase App.initializeApp()
(app/no-app).
at Object.u [as app] (https://www.gstatic.com/firebasejs/8.4.3/firebase-app.js:1:18229)
at Object.app$ [as app]
(http://localhost:60058/packages/firebase_core_web/src/interop/core.dart.lib.js:42:101)
at new cloud_firestore_web.FirebaseFirestoreWeb.new
(http://localhost:60058/packages/cloud_firestore_web/src/write_batch_web.dart.lib.js:865:64)
at Function.registerWith
(http://localhost:60058/packages/cloud_firestore_web/src/write_batch_web.dart.lib.js:788:73)
at Object.registerPlugins
(http://localhost:60058/packages/chat/generated_plugin_registrant.dart.lib.js:30:46)
at main (http://localhost:60058/web_entrypoint.dart.lib.js:44:35)
at main.next (<anonymous>)
at runBody (http://localhost:60058/dart_sdk.js:39051:34)
at Object._async [as async] (http://localhost:60058/dart_sdk.js:39082:7)
at main$ (http://localhost:60058/web_entrypoint.dart.lib.js:43:18)
at http://localhost:60058/main_module.bootstrap.js:19:10
at Array.forEach (<anonymous>)
at window.$dartRunMain (http://localhost:60058/main_module.bootstrap.js:18:32)
at <anonymous>:1:8
at Object.runMain (http://localhost:60058/dwds/src/injected/client.js:8656:21)
at http://localhost:60058/dwds/src/injected/client.js:22068:19
at _wrapJsFunctionForAsync_closure.$protected
(http://localhost:60058/dwds/src/injected/client.js:3830:15)
at _wrapJsFunctionForAsync_closure.call$2 (http://localhost:60058/dwds/src/injected/client.js:10905:12)
at Object._asyncStartSync (http://localhost:60058/dwds/src/injected/client.js:3794:20)
at main__closure1.$call$body$main__closure (http://localhost:60058/dwds/src/injected/client.js:22080:16) at main__closure1.call$1 (http://localhost:60058/dwds/src/injected/client.js:22007:19)
at StaticClosure._rootRunUnary [as call$2$5]
(http://localhost:60058/dwds/src/injected/client.js:4153:16)
at _CustomZone.runUnary$2$2 (http://localhost:60058/dwds/src/injected/client.js:12136:39)
at _CustomZone.runUnaryGuarded$1$2 (http://localhost:60058/dwds/src/injected/client.js:12068:14)
at _ControllerSubscription._sendData$1 (http://localhost:60058/dwds/src/injected/client.js:11697:19)
at _DelayedData.perform$1 (http://localhost:60058/dwds/src/injected/client.js:11849:59)
at _PendingEvents_schedule_closure.call$0 (http://localhost:60058/dwds/src/injected/client.js:11898:14)
at Object._microtaskLoop (http://localhost:60058/dwds/src/injected/client.js:3990:24)
at StaticClosure._startMicrotaskLoop (http://localhost:60058/dwds/src/injected/client.js:3996:11)
at _AsyncRun__initializeScheduleImmediate_internalCallback.call$1
(http://localhost:60058/dwds/src/injected/client.js:10774:9)
at invokeClosure (http://localhost:60058/dwds/src/injected/client.js:1250:26)
at MutationObserver.<anonymous> (http://localhost:60058/dwds/src/injected/client.js:1269:18)
我的整个 index.html 文件(我用“X”模糊了一些字段,因为我不确定它们是否是个人详细信息):
<!DOCTYPE html>
<html>
<head>
<!--
If you are serving your web app in a path other than the root, change the
href value below to reflect the base path you are serving from.
The path provided below has to start and end with a slash "/" in order for
it to work correctly.
Fore more details:
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
-->
<base href="/">

<meta charset="UTF-8">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<meta name="description" content="A new Flutter project.">

<!-- iOS meta tags & icons -->
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-title" content="chat">
<link rel="apple-touch-icon" href="icons/Icon-192.png">

<!-- Favicon -->
<link rel="icon" type="image/png" href="favicon.png"/>

<title>chat</title>
<link rel="manifest" href="manifest.json">
</head>
<body>
<!-- Insert these scripts at the bottom of the HTML, but before you use any Firebase services -->

<!-- Firebase App (the core Firebase SDK) is always required and must be listed first -->
<script src="https://www.gstatic.com/firebasejs/8.4.3/firebase-app.js"></script>

<!-- If you enabled Analytics in your project, add the Firebase SDK for Analytics -->
<script src="https://www.gstatic.com/firebasejs/8.4.3/firebase-analytics.js"></script>

<!-- Add Firebase products that you want to use -->
<script src="https://www.gstatic.com/firebasejs/8.4.3/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.4.3/firebase-firestore.js"></script>
<!-- This script installs service_worker.js to provide PWA functionality to
application. For more information, see:
https://developers.google.com/web/fundamentals/primers/service-workers -->
<script>
// TODO: Replace the following with your app's Firebase project configuration
// For Firebase JavaScript SDK v7.20.0 and later, `measurementId` is an optional field
var firebaseConfig = {
// ...
};
const firebaseConfig = {
apiKey: "XX",
authDomain: "X",
projectId: "chat-6052e",
storageBucket: "XXXXX",
messagingSenderId: "XXX",
appId: "XX"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
</script>
<script>
if ('serviceWorker' in navigator) {
window.addEventListener('flutter-first-frame', function () {
navigator.serviceWorker.register('flutter_service_worker.js');
});
}
</script>

<script src="main.dart.js" type="application/javascript"></script>
</body>
</html>
我的 main.dart 函数(它的开头显示我已经像许多其他答案所说的那样初始化 Firebase 是解决方案):
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}
我的 pubspec.yaml(其中一些显示依赖项):
dependencies:
flutter:
sdk: flutter


# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2
google_fonts: ^2.0.0
firebase_core: ^1.1.0
firebase_auth: ^1.1.2
google_sign_in: ^5.0.2
email_validator: '^1.0.6'
provider: ^5.0.0
cloud_firestore: ^1.0.7

dev_dependencies:
flutter_test:
sdk: flutter
构建 gradle(整个东西):
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
google()
jcenter()
}

dependencies {
classpath 'com.google.gms:google-services:4.3.5' // was 4.3.5
classpath 'com.android.tools.build:gradle:4.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}

allprojects {
repositories {
google()
jcenter()
}
}

rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
delete rootProject.buildDir
}
应用级构建 gradle(整个):
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}

apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
compileSdkVersion 30

sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}

defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.chat"
minSdkVersion 21 // was 16
targetSdkVersion 30
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}

buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
}
}
}

flutter {
source '../..'
}

dependencies {
implementation platform('com.google.firebase:firebase-bom:27.1.0')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

最佳答案

解决方案
因此,经过几个小时的困惑之后,我确定我的 index.html 文件是问题所在。将其更改为此解决了问题(我用 X 将一些我认为可能敏感的字段清空了?):

<!DOCTYPE html>
<html>
<head>
<!--
If you are serving your web app in a path other than the root, change the
href value below to reflect the base path you are serving from.
The path provided below has to start and end with a slash "/" in order for
it to work correctly.
Fore more details:
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
-->
<base href="/">

<meta charset="UTF-8">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<meta name="description" content="A new Flutter project.">

<!-- iOS meta tags & icons -->
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-title" content="chat">
<link rel="apple-touch-icon" href="icons/Icon-192.png">

<!-- Favicon -->
<link rel="icon" type="image/png" href="favicon.png"/>

<title>chat</title>
<link rel="manifest" href="manifest.json">
</head>
<body>
<!-- Insert these scripts at the bottom of the HTML, but before you use any Firebase services -->

<!-- Firebase App (the core Firebase SDK) is always required and must be listed first -->
<script src="https://www.gstatic.com/firebasejs/8.4.3/firebase-app.js"></script>

<!-- If you enabled Analytics in your project, add the Firebase SDK for Analytics -->
<script src="https://www.gstatic.com/firebasejs/8.4.3/firebase-analytics.js"></script>

<!-- Add Firebase products that you want to use -->
<script src="https://www.gstatic.com/firebasejs/8.4.3/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.4.3/firebase-firestore.js"></script>
<!-- This script installs service_worker.js to provide PWA functionality to
application. For more information, see:
https://developers.google.com/web/fundamentals/primers/service-workers -->
<script>
// TODO: Replace the following with your app's Firebase project configuration
// For Firebase JavaScript SDK v7.20.0 and later, `measurementId` is an optional field
var firebaseConfig = {
apiKey: "XXX",
authDomain: "XXX",
projectId: "XXX",
storageBucket: "XXX",
messagingSenderId: "XXX",
appId: "XXX"
};

// Initialize Firebase
firebase.initializeApp(firebaseConfig);
</script>
<script>
if ('serviceWorker' in navigator) {
window.addEventListener('flutter-first-frame', function () {
navigator.serviceWorker.register('flutter_service_worker.js');
});
}
</script>

<script src="main.dart.js" type="application/javascript"></script>
</body>
</html>

关于firebase - Flutter Web - 未创建 Firebase 应用程序 '[DEFAULT]' - 调用 Firebase App.initializeApp() (app/no-app),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67368311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com