Je comprends qu'il y a beaucoup de questions très similaires à cela; mais aucune de leurs solutions ne fonctionne pour moi. Je les ai tous essayés. PS: Je m'attends à ce que le problème soit quelque chose à voir avec mon index.html
Problème : J'utilise Firebase (sur le web de flutter) et j'essaie d'authentifier les utilisateurs à travers elle. Cependant, mon site ne se lancera même pas (écran vide) après avoir essayé d'ajouter Firebase pour le faire fonctionner. J'apprécierais une aide d'aide à comprendre!
l'erreur : Aucune application Firebase '[Par défaut]' a été créée - appelez Firebase app.IitializApp () (app/no-app)
Notes : Le problème se produit sur le webbutter mais fonctionne sur mon Android Téléphone. En outre, j'ai passé des heures à regarder toutes les réponses à toutes les questions similaires et aucune de leurs solutions Travail. En outre, c'est ma première fois poser une question, alors s'il vous plaît laissez-moi savoir si je fais quelque chose de mal. Merci!
sortie pour erreur :
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)
Mon fichier index.html complet (certains champs que j'ai flous avec "X" parce que je ne suis pas sûr de cas de détails personnels) :
<!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>
ma fonction MAIN.DART (le début de celui-ci montrant que j'ai intitulé Firebase comme beaucoup d'autres réponses disent est la solution) :
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}
mon pubspec.yaml (une partie de celle-ci montrant des dépendances) :
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
Construire la grade (chose entière) :
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
}
Niveau d'application Buildle Buildle (Tout) :
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"
}
N'utilisez pas deux déclarations de firebase.initializeApp () dans votre code.
Pour empêcher la présente erreur, 'Classe de descripteur de module local pour com.google.android.gms.providerInstaller.dynamite non trouvé'.
J'ai couru dans le même problème. L'exception est Clear Clear: le FirebaseApp n'est pas introduit. La plupart des réponses recommandées soit ait intitulé l'application dans Main.Dart ou dans Index.html, mais AUCUN D'eux travaillés pour moi:
// did not work for me, initilizeApp fails for flutter web
Future<void> main() async {
try {
await Firebase.initializeApp(name: fireStoreInstanceName);
} on Exception catch (e) {
print(e);
}
runApp(const MyApp());
}
/// index.html
/// did not work either, FireApp initilized in index.html is not accessible in Dart
<script type="module">
import { initializeApp } from "https://www.gstatic.com/firebasejs/9.1.3/firebase-app.js";
const firebaseConfig = {
apiKey: "xxxxx",
authDomain: "xxxxx",
projectId: "noplans",
storageBucket: "xxxx",
messagingSenderId: "xxxx",
appId: "1:xxxxx",
measurementId: "xxxxx"
};
const app = initializeApp(firebaseConfig, "noplans");
console.log("qqqqq 2, app = " + app.name);
</script>
Qu'avez-vous travaillé pour moi :
main.dar
, init la FireApp avec des options s'il s'agit d'une application WebFirebaseFirestore.instanceFor
à la place de FirebaseFirestore.instance
:/// in main.Dart
import 'package:flutter/foundation.Dart' show kIsWeb;
...
if (kIsWeb) {
await Firebase.initializeApp(
name: fireStoreInstanceName,
options: const FirebaseOptions(
apiKey: "xxxxxxxxxxxx",
appId: "1:xxxxxx",
messagingSenderId: "xxxxxxx",
projectId: "xxxx"),
);
} else {
await Firebase.initializeApp(name: fireStoreInstanceName);
}
/// to get Firestore instance
FirebaseFirestore? getFirestoreInstance() {
for (var app in Firebase.apps) {
if (app.name == fireStoreInstanceName) {
return FirebaseFirestore.instanceFor(app: app);
}
}
return null;
}
/// use of instance
FirebaseFirestore? instance = getFirestoreInstance();
if (instance == null) {
return likes;
}
QuerySnapshot<Map<String, dynamic>> snapshot =
await instance.collection("my_doc").get();