フラッターのためのFirebaseのセットアップ方法
イントロ
こんにちは、そして、歓迎、私はフラッターでFireBaseプロジェクトを準備する方法に関する短い記事です.あなたがそれを感じるならば、TOCを通してスキップするために、自由に感じてください.
コーディング・ラウンジ 設定
FireBaseを設定する前にフラッタープロジェクトを最初に作成しましょう.端末を開き、お好みのディレクトリにフラッタプロジェクトを作成しましょう.
注意: Linux OSを使用しています.
flutter create flutter_firebase_connection
cd flutter_firebase_connection/
# open in vs code
code .
Firebaseプロジェクトを作成する
Firebase にFireBaseプロジェクトを作成してください.あなたがFireBaseプロジェクトを決して作成しなかったならば、Googleによってこのconsoleから指示に従ってください.
コードラボ ファイアウォールのインストール
我々は開発のための パッケージに依存します.FlutterFireパッケージの設定はFlutterFireで行うことができます.しかし、Flutterfire CLIは、FlutterFire CLIに頼ります.FireBaseアカウントにインストールしてログインする手順に従ってください.いいえ、FireBaseを初期化する必要があります、我々は後でFlutterFire CLI構成の後にそれをします.
ファイアベース 依存関係のインストール
FireBase CLIインストール後、プロジェクトをFireBaseプロジェクトにリンクする前に、いくつかの依存関係をインストールします.端末で:
# Root of the flutter project
# Firebase core
flutter pub add firebase_core
# Firebase Auth
flutter pub add firebase_auth
# Firebase Firestore
flutter pub add cloud_firestore
# Firebase Cloud Functions
flutter pub add cloud_functions
# Firebase Storage
flutter pub add firebase_storage
Firebaseコア、Firebase Auth、FireBaseのクラウド機能、およびFlubaseストレージパッケージをフラッターにインストールしました.をインストールして設定する
端末にフラッタCLIをインストールして設定しましょう
# Install Firebase CLI
dart pub global activate flutterfire_cli
# On the root of your project
# configur cli
flutterfire configure
設定プロセス中:ファイアベース初期設定
メインで.プロジェクトのDARTファイルはfirebaseを初期化しましょう.
// Import
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';
import 'package:flutter/material.dart';
void main() async {
// concrete binding for applications based on the Widgets framewor
WidgetsFlutterBinding.ensureInitialized();
// Initialize Firebase
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
runApp(const MyApp());
}
FireBaseバックエンドを設定する
多くのバックエンドコードを書くならば、あなたはセキュリティときれいなコードのためにフラッタフロントエンドとFireBaseバックエンド側を切り離すべきです.それで、クラウドとエミュレータの両方に別々にFireBaseを設定しましょう.
リマインダ:設定を開始する前に、作成したプロジェクトのFireBaseコンソールからFirestoreデータベース(テストモードで)を作成してください.それ以外の場合は、データベースが作成されていないというプロセス中にエラーが発生します.
# On the root of your project
firebase init
FireBaseエミュレータスイートをFlutterプロジェクトに接続します。
エミュレータに接続するには、もう一度メインに変更を加える必要があります.ダートファイル.
インポートが必要な場合は、すでに依存していません.
import 'dart:io' show Platform; // Its required for emulator
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:cloud_functions/cloud_functions.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_storage/firebase_storage.dart';
グローバルBoolean Useエミュレータを作成します.// Outside of any class or methods, before main()
const bool _useEmulator = true;
必要な設定をエミュレータに接続する関数を作成します.// Outside of main, preferably at the end of the file
// Settings for firebase emulator connection
Future _connectToEmulator() async {
// Provide url to the emulator, localhost might not work on android emulator.
final host = Platform.isAndroid ? '22.0.4.08' : 'localhost'; //#1
// Provide port for all the local emulator prodcuts
// #2
const authPort = 9099;
const firestorePort = 8080;
const functionsPort = 5001;
const storagePort = 9199;
// Just to make sure we're running locally
print("I am running on emulator");
// Instruct all the relevant firebase products to use the firebase emulator
// # 3
await FirebaseAuth.instance.useAuthEmulator(host, authPort);
FirebaseFirestore.instance.useFirestoreEmulator(host, firestorePort);
FirebaseFunctions.instance.useFunctionsEmulator(host, functionsPort);
FirebaseStorage.instance.useStorageEmulator(host, storagePort);
}
vitalsを通しましょう.// Set app to run on firebase emulator
if (_useEmulator) {
await _connectToEmulator();
}
最終コード
私たちは今エミュレータを使用するように設定しています.主な最終形態.ダーツは
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';
import 'dart:io' show Platform; // Its required for emulator
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:cloud_functions/cloud_functions.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_storage/firebase_storage.dart';
// Outside of any class or methods, before main()
const bool _useEmulator = true;
void main() async {
// concrete binding for applications based on the Widgets framewor
WidgetsFlutterBinding.ensureInitialized();
// Initialize Firebase
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
// Set app to run on firebase emulator
if (_useEmulator) {
await _connectToEmulator();
}
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
int _counter = 0;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('App bar'),
),
body: const Center(
child: Text("Flutter Fireabse Connection App"),
));
}
}
// Settings for firebase emulator connection
Future _connectToEmulator() async {
// Provide url to the emulator, localhost might not work on android emulator.
final host = Platform.isAndroid ? '22.0.4.08' : 'localhost'; //#1
// Provide port for all the local emulator prodcuts
// #2
const authPort = 9099;
const firestorePort = 8080;
const functionsPort = 5001;
const storagePort = 9199;
// Just to make sure we're running locally
print("I am running on emulator");
// Instruct all the relevant firebase products to use the firebase emulator
// # 3
await FirebaseAuth.instance.useAuthEmulator(host, authPort);
FirebaseFirestore.instance.useFirestoreEmulator(host, firestorePort);
FirebaseFunctions.instance.useFunctionsEmulator(host, functionsPort);
FirebaseStorage.instance.useStorageEmulator(host, storagePort);
}
Firebaseエミュレータを実行する// On terminal
firebase emulators:start
Androidエミュレータを実行するときは、「エミュレータで実行中」のメッセージが表示されるはずです.エラー:FireStoreエミュレータを起動できませんでした。
いくつかの時点で誤ってポートを閉じることを忘れたとき、ポートが既に取られているというエラーが出ます.それを修正するために、我々は港を殺さなければなりません.
# Provide the port that has been given in an error message like 8080
npx kill-port 8080
さて、アクティブポートが終了したら、エミュレータを再び起動できます.概要
この非常に短いシリーズでは、我々はFireBaseプロジェクトに我々のアプリを接続するために移動しました.手順をたどりましょう.
サポートを示す
これは接続です.さて、あなたの開発を進めることができます.万事うまくいってもらいたい.これはKhadkaのコーディングラウンジからのNibesh Khadkaです.好き、共有、コメントをサポートし、将来のブログに購読を確認してください.
Reference
この問題について(フラッターのためのFirebaseのセットアップ方法), 我々は、より多くの情報をここで見つけました https://dev.to/nibukdk/how-to-setup-firebase-for-flutter-android-and-ios-3jcaテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol