4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Flutter × Firebase Analytics の導入メモ📱イベント送信までの最短ルート

Posted at

🏁 はじめに

Flutterアプリに「ユーザーがどんな操作をしているか」を記録したくて、Firebase Analyticsを入れてみました。
……が、最初はぜんぜんイベントが飛ばずに困惑しました🥹💦

この記事では、FlutterでFirebase Analyticsを導入して、実際にイベントを送信・確認できるようになるまでを、初心者目線でまとめています。
同じように「設定したのに反映されない!」となっている方の参考になればうれしいです🙆‍♀️

⚙️ Firebaseプロジェクトの準備

まずはFirebase Consoleでアプリを登録します。
「Android」と「iOS」両方に対応させる場合、それぞれ設定ファイルを取得しましょう。

OS ファイル名 配置場所
Android google-services.json android/app/
iOS GoogleService-Info.plist ios/Runner/

次に、pubspec.yaml に以下を追加します👇

dependencies:
  firebase_core: ^3.3.0
  firebase_analytics: ^11.2.0

その後、パッケージをインストール:

flutter pub get

🔧 Flutter側の初期化コード

Firebaseを使う前に、アプリ起動時に初期化を行います。

import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_analytics/firebase_analytics.dart';
import 'package:firebase_analytics/observer.dart';
import 'firebase_options.dart'; // FlutterFire CLIで生成されたもの

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  final FirebaseAnalytics analytics = FirebaseAnalytics.instance;

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Firebase Analytics Demo',
      navigatorObservers: [
        FirebaseAnalyticsObserver(analytics: analytics),
      ],
      home: MyHomePage(analytics: analytics),
    );
  }
}

class MyHomePage extends StatelessWidget {
  final FirebaseAnalytics analytics;
  const MyHomePage({required this.analytics});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text("Analytics Demo")),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            await analytics.logEvent(
              name: 'button_clicked',
              parameters: {'screen': 'home'},
            );
            print('✅ Event sent!');
          },
          child: const Text("イベント送信!"),
        ),
      ),
    );
  }
}

ボタンを押すと、button_clicked イベントが送信されます✨

👀 DebugViewで動作確認

「イベントが送信されたか確認したい!」というときは、DebugViewを使います。

Androidの場合

adb shell setprop debug.firebase.analytics.app <package_name>

例:

adb shell setprop debug.firebase.analytics.app com.example.analyticsdemo

iOSの場合

XcodeのRun Argumentsに以下を追加します👇

-FIRDebugEnabled

Firebase Console → Analytics → DebugView を開くと、
イベントがリアルタイムで表示されます✨

⚠️ よくあるつまずきポイント

1. イベントが反映されない
→ DebugViewで見ても出ないときは、一度アプリを再起動して再送信してみてください。
(私はこれで3時間悩みました…🥲)

2.iOSで設定ファイルが反映されない
GoogleService-Info.plist が Runner直下ではなく1階層ずれてることがあります。
Xcodeでファイルを直接ドラッグして追加するのが確実です。

3. カスタムイベント名が反映されない
→ 英数字とアンダースコアのみ使えます(例:user_logged_in
ハイフンなどを入れると無視されるので注意⚠️

💡 まとめ

Firebase Analyticsを入れてみて思ったのは、
「設定が通ってイベントが届く瞬間、ちょっと感動する…!」ということです😆✨

最初はエラーや設定漏れでつまづくかもしれませんが、
一度動けばあとはどんどん使えるようになります。

📈 これからはカスタムイベントやユーザー属性を設定して、
アプリの“使われ方”をもっと可視化していきたいと思います!

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?