/cordova-plugin-firebasex-test

A Cordova app project to test cordova-plugin-firebasex

Primary LanguageJavaScript

cordova-plugin-firebasex-test

This repo contains a Cordova project which builds a test app for cordova-plugin-firebasex which is a fork of cordova-plugin-firebase that has been updated to fix several issues.

CLI build instructions

git clone https://github.com/dpa99c/cordova-plugin-firebasex-test.git && cd cordova-plugin-firebasex-test
npm install

cordova platform add ios
cordova run ios

cordova platform add android
cordova run android

iOS build notes

iOS package ID

The configured package ID for this test project is uk.co.workingedge.firebase.test which I have registered with my Apple Developer Team in order to create an iOS provisioning profile with appropriate permissions.

Therefore in order to test this project on iOS, you will need to change the package ID to one which is associated with your Apple Developer Team and for which you have set appropriate capabilities.

Cocopods

cordova-plugin-firebasex relies on cordova@9/cordova-ios@5 support for the CocoaPods dependency manager in order to satify the iOS Firebase SDK library dependencies.

Therefore please make sure you have Cocoapods installed in your iOS build environment - setup instructions can be found here. Also make sure your local Cocoapods repo is up-to-date by running pod repo update.

Building in Xcode

If building your project in Xcode, you need to open YourProject.xcworkspace (not YourProject.xcodeproj) so both your Cordova app project and the Pods project will be loaded into Xcode.

Testing Cloud Messaging

If you want to test FCM using this project, you'll need to do the following:

iOS

  • Change the package ID in the config.xml to a package ID which is associated with your Apple Developer Team and for which you have set appropriate capabilities (i.e. enabled Push Notifications).
  • Set up a Firebase project and add an iOS app which is configured for your package ID.
  • Upload an auth key or APNS certificate for the package ID to the Firebase project
  • Download the GoogleService-Info.plist for your app and overwrite the one bundled with this project.
  • Build and run your project on an iOS device (iOS Simulator cannot receive push notifications).

Android

  • Change the package ID in the config.xml to another package ID.
  • Set up a Firebase project and add an Android app which is configured for your package ID.
  • Download the google-services.json for your app and overwrite the one bundled with this project.
  • Build and run your project on an Android device.

You can send notification (but not data) messages using the Firebase Console.

Messaging client

In order to send both data and notification messages for testing, this repo includes a messaging client written in nodejs to send predefined messages via the FCM v1 HTTP API for testing.

Setup messaging client

In order to setup the messaging client, you first need to download a "service account" private key file from your Firebase project and save it into the root of this repo:

  • Open your Firebase project in the Firebase Console
  • Go to "Project settings" > "Service accounts" tab
  • Press "Generate new private key" and save the file as service-account.json in the root of this cloned project repo.

Send test messages

  • In order to send test messages to your device, you first need to find the Firebase token for the app on the device.
  • To do this, build and run this app on the device and it should display the token.
  • Copy the token value (e.g. connect Safari Web Inspector/Chrome Dev Tools to the Webview)
  • You can then send the messages defined in the messages/ directory of this repo using the CLI in the root of the repo

Use the following syntax:

npm run-script send -- --token="<your_device_token>" --message=<message_name>.json

where <your_device_token> is the token you noted down and <message_name> is the name of a message file in the messages/ directory, for example:

npm run-script send -- --message=notification.json --token="cJlSa4UjtO0:APA91bFNDPVnHaS1__UTdNc8kt3uplnxBOcPGBbEO37J0FU3vFgGyud7gWDT2RJ5VmSJ68qFyiCu0y-WWcur7hE8RelRkzlS3RK6edFycpvm4K2szsMqMXOxEy72V9a41u6kaVh7U4nz"

Testing authentication

To test the authentication methods, you must configure each method for the target mobile platform as outlined in the plugin documentation for that method.

Android

Set your server client ID in www/js/config.js - see the Firebase documentation for where to find this. This is used for Google Sign In on Android.

Analytics DebugView

See this page for how to manually enable Firebase Analytics DebugView.