Ben*_*ise 5 firebase firebase-hosting flutter flutter-web
背景
我的尝试 有几篇 Stack Overflow 帖子没有解决这个问题。这些包括:
build/web在运行 firebase init 命令时使用遵循的步骤
au.com.mydomain(mydomain我拥有的域名在哪里)。flutter create web。cd web和flutter run”。cd web和flutter run. 该应用程序在 Google Chrome 中的本地主机上成功运行。demo159752.demo用作应用程序昵称。web现在在 Android Studio 的文件结构中可以看到一个文件夹。web文件夹。它不包含 index.html 文件,但包含一个子文件夹,也称为web.web子文件夹,发现它包含一个 index.html 文件。</body>. 我粘贴了上面来自 firebase 的代码</body>。npm install -g firebase-tools以安装 Firebase CLI。它已经安装在我的机器上,但我还是从终端运行了这个命令。这会导致语句“更新 1 个包”。firebase login。这会导致以下语句:“已以身份登录emailAddress”(emailAddress我的电子邮件地址在哪里)。firebase init,我这样做了。然后我导航到 Hosting 选项,通过按键盘上的空格键选择它,然后按 Enter。demo159752.build/web.Y.N.? Wrote build/web/index.htmli Writing configuration info to firebase.json...i Writing project information to .firebaserc...? Firebase initialization complete!firebase deploy。? Deploy complete! and am gien a hosting URL.firebase.json文件是否已按预期创建。然而,它没有。firebase.json文件来解决此问题。为此,我在名为的根目录中创建一个新文件firebase.json并使用以下代码:{ "hosting": { "public": "build/web", "ignore": [ "firebase.json", " /.*", " /node_modules/**" ] } }
flutter build web --release.firebase deploy。问题 为什么我的应用没有成功部署?我做错了什么,我需要做什么才能成功部署它?
其他细节 Flutter 版本:
Flutter 2.1.0-12.1.pre • channel dev • https://github.com/flutter/flutter.git
Framework • revision 8264cb3e8a (5 weeks ago) • 2021-03-10 12:37:57 -0800
Engine • revision 711ab3fda0
Tools • Dart 2.13.0 (build 2.13.0-116.0.dev)
Run Code Online (Sandbox Code Playgroud)
颤振医生
Doctor summary (to see all details, run flutter doctor -v):
[?] Flutter (Channel dev, 2.1.0-12.1.pre, on Mac OS X 10.15.7 19H524 darwin-x64,
locale en-AU)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
? Android license status unknown.
Run `flutter doctor --android-licenses` to accept the SDK licenses.
See https://flutter.dev/docs/get-started/install/macos#android-setup for
more details.
[!] Xcode - develop for iOS and macOS
? Xcode 11.4.1 out of date (12.0.1 is recommended).
Download the latest version or update via the Mac App Store.
! CocoaPods 1.9.3 out of date (1.10.0 is recommended).
CocoaPods is used to retrieve the iOS and macOS platform side's plugin
code that responds to your plugin usage on the Dart side.
Without CocoaPods, plugins will not work on iOS or macOS.
For more info, see https://flutter.dev/platform-plugins
To upgrade see
https://guides.cocoapods.org/using/getting-started.html#installation for
instructions.
[?] Chrome - develop for the web
[?] Android Studio (version 4.1)
[?] Connected device (1 available)
! Doctor found issues in 2 categories.
Run Code Online (Sandbox Code Playgroud)
index.html 文件
<!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.
For 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="web">
<link rel="apple-touch-icon" href="icons/Icon-192.png">
<title>web</title>
<link rel="manifest" href="manifest.json">
</head>
<body>
<!-- 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>
var serviceWorkerVersion = null;
var scriptLoaded = false;
function loadMainDartJs() {
if (scriptLoaded) {
return;
}
scriptLoaded = true;
var scriptTag = document.createElement('script');
scriptTag.src = 'main.dart.js';
scriptTag.type = 'application/javascript';
document.body.append(scriptTag);
}
if ('serviceWorker' in navigator) {
// Service workers are supported. Use them.
window.addEventListener('load', function () {
// Wait for registration to finish before dropping the <script> tag.
// Otherwise, the browser will load the script multiple times,
// potentially different versions.
var serviceWorkerUrl = 'flutter_service_worker.js?v=' + serviceWorkerVersion;
navigator.serviceWorker.register(serviceWorkerUrl)
.then((reg) => {
function waitForActivation(serviceWorker) {
serviceWorker.addEventListener('statechange', () => {
if (serviceWorker.state == 'activated') {
console.log('Installed new service worker.');
loadMainDartJs();
}
});
}
if (!reg.active && (reg.installing || reg.waiting)) {
// No active web worker and we have installed or are installing
// one for the first time. Simply wait for it to activate.
waitForActivation(reg.installing ?? reg.waiting);
} else if (!reg.active.scriptURL.endsWith(serviceWorkerVersion)) {
// When the app updates the serviceWorkerVersion changes, so we
// need to ask the service worker to update.
console.log('New service worker available.');
reg.update();
waitForActivation(reg.installing);
} else {
// Existing service worker is still good.
console.log('Loading app from service worker.');
loadMainDartJs();
}
});
// If service worker doesn't succeed in a reasonable amount of time,
// fallback to plaint <script> tag.
setTimeout(() => {
if (!scriptLoaded) {
console.warn(
'Failed to load app from service worker. Falling back to plain <script> tag.',
);
loadMainDartJs();
}
}, 4000);
});
} else {
// Service workers not supported. Just drop the <script> tag.
loadMainDartJs();
}
</script>
<!-- The core Firebase JS SDK is always required and must be listed first -->
<script src="https://www.gstatic.com/firebasejs/8.3.3/firebase-app.js"></script>
<!-- TODO: Add SDKs for Firebase products that you want to use
https://firebase.google.com/docs/web/setup#available-libraries -->
<script>
// Your web app's Firebase configuration
var firebaseConfig = {
apiKey: "AIzaSyCsPqvAN2gvlyCv3J7H1lTscXxB0T5itDE",
authDomain: "demo159752.firebaseapp.com",
projectId: "demo159752",
storageBucket: "demo159752.appspot.com",
messagingSenderId: "222592650517",
appId: "1:222592650517:web:ff8984d70b66dfc1fa2d1c"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
firebase.json 文件
{
"hosting": {
"public": "build/web",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1183 次 |
| 最近记录: |