Firebase Analytics
@capacitor-community/firebase-analytics
Capacitor community plugin for native Firebase Analytics.
Maintainers
Maintenance Status: Actively Maintained
Installation
Using npm:
npm install @capacitor-community/firebase-analytics
Using yarn:
yarn add @capacitor-community/firebase-analytics
Sync native files:
npx cap sync
On iOS, no further steps are needed.
On Android, register the plugin in your main activity:
import com.getcapacitor.community.firebaseanalytics.FirebaseAnalytics;
public class MainActivity extends BridgeActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.init(
savedInstanceState,
new ArrayList<Class<? extends Plugin>>() {
{
add(FirebaseAnalytics.class);
}
}
);
}
}
Configuration
No configuration is required for this plugin.
Examples
Click here for an example on how to implement this plugin.
You can also clone the repository:
git clone https://github.com/priyankpat/capacitor-plugins-example
git checkout -b firebase-analytics
Supported methods
Name | Android | iOS | Web |
---|
setUserId | ✅ | ✅ | ✅ |
setUserProperty | ✅ | ✅ | ✅ |
getAppInstanceId | ✅ | ✅ | ❌ |
setScreenName | ✅ | ✅ | ❌ |
reset | ✅ | ✅ | ✅ |
logEvent | ✅ | ✅ | ✅ |
setCollectionEnabled | ✅ | ✅ | ✅ |
setSessionTimeoutDuration | ✅ | ✅ | ✅ |
enable | ✅ | ✅ | ❌ |
disable | ✅ | ✅ | ❌ |
Usage
import "@capacitor-community/firebase-analytics";
import { Plugins } from "@capacitor/core";
const { FirebaseAnalytics } = Plugins;
FirebaseAnalytics.initializeFirebase({
apiKey: "...",
authDomain: "...",
databaseURL: "...",
projectId: "...",
storageBucket: "...",
messagingSenderId: "...",
appId: "...",
measurementId: "...",
});
FirebaseAnalytics.setUserId({
userId: "john_doe_123",
});
FirebaseAnalytics.setUserProperty({
name: "favorite_food",
value: "pizza",
});
FirebaseAnalytics.getAppInstanceId();
FirebaseAnalytics.setScreenName({
screenName: "login",
nameOverride: "LoginScreen",
});
FirebaseAnalytics.reset();
FirebaseAnalytics.logEvent({
name: "select_content",
params: {
content_type: "image",
content_id: "P12453",
items: [{ name: "Kittens" }],
},
});
FirebaseAnalytics.setCollectionEnabled({
enabled: false,
});
FirebaseAnalytics.enable();
FirebaseAnalytics.disable();
FirebaseAnalytics.setSessionTimeoutDuration({
duration: 10000,
});
Setup
Navigate to the project settings page for your app on Firebase.
iOS
Download the GoogleService-Info.plist
file. In Xcode right-click on the yellow folder named "App" and select the Add files to "App"
.
Tip: if you drag and drop your file to this location, Xcode may not be able to find it.
Android
Download the google-services.json
file and copy it to android/app/
directory of your capacitor project.
iOS setup
ionic start my-cap-app --capacitor
cd my-cap-app
npm install --save @capacitor-community/firebase-analytics
mkdir www && touch www/index.html
sudo gem install cocoapods
(only once)npx cap add ios
npx cap sync ios
(every time you run npm install
)npx cap open ios
- sign your app at xcode (general tab)
- add
GoogleService-Info.plist
to the app folder in xcode
Enable debug view
- In Xcode, select Product > Scheme > Edit scheme
- Select Run from the left menu
- Select the Arguments tab
- In the Arguments Passed On Launch section, add
-FIRAnalyticsDebugEnabled
Tip: every time you change a native code you may need to clean up the cache (Product > Clean build folder) and then run the app again.
Android setup
ionic start my-cap-app --capacitor
cd my-cap-app
npm install --save @capacitor-community/firebase-analytics
mkdir www && touch www/index.html
npx cap add android
npx cap sync android
(every time you run npm install
)npx cap open android
- add
google-services.json
to your android/app
folder [extra step]
in android case we need to tell Capacitor to initialise the plugin:
on your MainActivity.java
file add import com.getcapacitor.community.firebaseanalytics.FirebaseAnalytics;
and then inside the init callback add(AnalyticsPlugin.class);
Now you should be set to go. Try to run your client using ionic cap run android --livereload --address=0.0.0.0
.
Tip: every time you change a native code you may need to clean up the cache (Build > Clean Project | Build > Rebuild Project) and then run the app again.
Updating
For existing projects you can upgrade all capacitor related packages (including this plugin) with this single command
npx npm-upgrade '*capacitor*' && npm install
Migration
If you were previously using the capacitor-analytics
package from npm
- rename dep in package.json from
capacitor-analytics
to @capacitor-community/firebase-analytics
- on android's MainActivity.java change the import path from
io.stewan.capacitor.analytics.AnalyticsPlugin;
to com.getcapacitor.community.firebaseanalytics.FirebaseAnalytics;
- public api changes
instance()
is now getAppInstanceId()
setScreen()
is now setScreenName()
setUserID()
is now setUserId()
setUserProp()
us now setUserProperty()
Further info