Skip to content

Instantly share code, notes, and snippets.

@dyazincahya
Last active March 21, 2021 13:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dyazincahya/d4513891e6628cf47a6bbcd4911474d7 to your computer and use it in GitHub Desktop.
Save dyazincahya/d4513891e6628cf47a6bbcd4911474d7 to your computer and use it in GitHub Desktop.
Cara mengatur Nativescript v6+ Firebase

Plugin yang digunakan

https://github.com/EddyVerbruggen/nativescript-plugin-firebase

Cara konfigurasi

1. Atur pada file app/App_Resources/Android/app.gradle

Sebelumnya
defaultConfig {
  minSdkVersion 17
  generatedDensities = []
}
aaptOptions {
  additionalParameters "--no-version-vectors"
}
Sesudah
defaultConfig {
  minSdkVersion 17
  generatedDensities = []
  multiDexEnabled true
}
aaptOptions {
  additionalParameters "--no-version-vectors"
}
dexOptions {
  javaMaxHeapSize "4g"
}
project.ext {
  googlePlayServicesVersion = "15.0.0"
}

2. Buat file google-services.json

Buat projek baru di https://firebase.google.com, lalu download google-services.json -nya dan copy ke folder app/App_Resources/Android/

3. Tambahkan kode pada AndroidManifest.xml

Buka file app/App_Resources/Android/src/main/AndroidManifest.xml pada tag <application> tambahkan kode berikut ini

<service android:name="org.nativescript.plugins.firebase.MyFirebaseInstanceIDService">
    <intent-filter>
        <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
    </intent-filter>
</service>
<service android:name="org.nativescript.plugins.firebase.MyFirebaseMessagingService">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT"/>
    </intent-filter>
</service>

<meta-data android:name="com.google.firebase.messaging.default_notification_icon"
  android:resource="@drawable/icon" />
<meta-data android:name="com.google.firebase.messaging.default_notification_color"
  android:resource="@color/ns_primary" />

4. Init plugin pada file app/app.js

var firebase = require("nativescript-plugin-firebase");
firebase.init({
	showNotifications: true,
    showNotificationsWhenInForeground: true,
	onMessageReceivedCallback: function(message) {
      	// console.log("Title: " + message.title);
      	// console.log("Body: " + message.body);
      	// console.log("Value of 'foo': " + message.data.foo);
    },
    onPushTokenReceivedCallback: function(token) {
    	// setiap 1 user punya 1 device token, jadi simpan device token di tabel user
    	/*let params = { device_token: token };
		fetchModule.fetch("http://example.com/save_device_token", {
	        method: "POST",
	        headers: { "Content-Type": "application/json" },
	        body: JSON.stringify(params)
	    }).then(function(response) {
	    	// response
	    });*/
    	console.log("Firebase push token: " + token);
    }
}).then(
    function () {
      console.log("firebase.init done");
    },
    function (error) {
      console.log("firebase.init error: " + error);
    }
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment