Showing posts with label Firebase. Show all posts
Showing posts with label Firebase. Show all posts

Saturday 8 April 2017

Menggunakan Sampel Kode Database Firebase Berbasis Web

Gambar 1. Logo firebase


Untuk dapat menggunakan firebase dengan fasih tidak ada salahnya dengan mencoba menjalankan kode sampel dahulu, Kode sampel tersebut sudah disediakan oleh google kita hanya perlu copy dan paste. Ketika sudah berjalan kita dapat pelajari kode tersebut dan mensederhanakan / menyesuaikannya dengan program yang akan kita buat.

1. link kode sampel:
https://github.com/firebase/quickstart-js

download kode tersebut lalu ekstrak pada xampp localhost/htdocs (jngn lupa start apache dan mysql)
Gambar 2. Download Sampel Kode

2. buka dengan url: http://localhost/quickstart-js-master/database/

Gambar 3. Halaman depan sampel Kode

3. kita belum dapat sign, 
untuk menggunakan layanan firebase kita perlu mendaftar
cara mendaftar bisa lihat:

4. Setelah selesai mendaftarkan kita pilih Add Firebase to your web app
Gambar 4. Add firebase to your web app


5. Kemudian pilih copy seperti gambar 5

Gambar 5. Api key

6. buka dengan kode editor  C:\xampp\htdocs\quickstart-js-master\database\index.html 
kemudian copy api key yang telah di copy tadi ke index.html dibaris seperti gambar 6.

Gambar 6. Paste Api Key

7. Kemudian simpan

8. Aktifkan otentifikasi google caranya enable  google authentication seperti gambar 7



Gambar 7. Enable  google authentication


9. Atur rules database seperti gambar 8
 kemudian publish

Gambar 8. Atur rules database





Sampel Kode sudah bisa dijalankan
buka lagi
http://localhost/quickstart-js-master/database/

hasil menjalankan aplikasi:
Gambar 9. Hasil sampel kode



Silahkan pelajari kode tersebut dan sesuaikan dengan kebutuhan aplikasi web anda


Sekian dan terimakasih


Saturday 1 April 2017

Menggunakan Database Firebase 2 -Android

Gambar 1. Logo Firebase

Halaman ini merupakan lanjutan dari halaman

Pada halaman sebelumnya sudah share mengenai register aplikasi ke firebase, saat ini saya akan share source code aplikasi.

MainActivity.java:

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

public class MainActivity extends AppCompatActivity {

    private static final String TAG = MainActivity.class.getSimpleName();
    private TextView txtDetails;
    private EditText inputName, inputEmail;
    private Button btnSave;
    private DatabaseReference mFirebaseDatabase;
    private FirebaseDatabase mFirebaseInstance;

    private String userId;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Displaying toolbar icon
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setIcon(R.mipmap.ic_launcher);

        txtDetails = (TextView) findViewById(R.id.txt_user);
        inputName = (EditText) findViewById(R.id.name);
        inputEmail = (EditText) findViewById(R.id.email);
        btnSave = (Button) findViewById(R.id.btn_save);

        mFirebaseInstance = FirebaseDatabase.getInstance();

        // get reference to 'users' node
        mFirebaseDatabase = mFirebaseInstance.getReference("users");

        // store app title to 'app_title' node
        mFirebaseInstance.getReference("app_title").setValue("Realtime Database");

        // app_title change listener
        mFirebaseInstance.getReference("app_title").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                Log.e(TAG, "App title updated");

                String appTitle = dataSnapshot.getValue(String.class);

                // update toolbar title
                getSupportActionBar().setTitle(appTitle);
            }

            @Override
            public void onCancelled(DatabaseError error) {
                // Failed to read value
                Log.e(TAG, "Failed to read app title value.", error.toException());
            }
        });

        // Save / update the user
        btnSave.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String name = inputName.getText().toString();
                String email = inputEmail.getText().toString();

                // Check for already existed userId
                if (TextUtils.isEmpty(userId)) {
                    createUser(name, email);
                } else {
                    updateUser(name, email);
                }
            }
        });

        toggleButton();
    }

    // Changing button text
    private void toggleButton() {
        if (TextUtils.isEmpty(userId)) {
            btnSave.setText("Save");
        } else {
            btnSave.setText("Update");
        }
    }

    /**
     * Creating new user node under 'users'
     */
    private void createUser(String name, String email) {
        // TODO
        // In real apps this userId should be fetched
        // by implementing firebase auth
        if (TextUtils.isEmpty(userId)) {
            userId = mFirebaseDatabase.push().getKey();
        }

        User user = new User(name, email);

        mFirebaseDatabase.child(userId).setValue(user);

        addUserChangeListener();
    }

    /**
     * User data change listener
     */
    private void addUserChangeListener() {
        // User data change listener
        mFirebaseDatabase.child(userId).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                User user = dataSnapshot.getValue(User.class);

                // Check for null
                if (user == null) {
                    Log.e(TAG, "User data is null!");
                    return;
                }

                Log.e(TAG, "User data is changed!" + user.name + ", " + user.email);

                // Display newly updated name and email
                txtDetails.setText(user.name + ", " + user.email);

                // clear edit text
                inputEmail.setText("");
                inputName.setText("");

                toggleButton();
            }

            @Override
            public void onCancelled(DatabaseError error) {
                // Failed to read value
                Log.e(TAG, "Failed to read user", error.toException());
            }
        });
    }

    private void updateUser(String name, String email) {
        // updating the user via child nodes
        if (!TextUtils.isEmpty(name))
            mFirebaseDatabase.child(userId).child("name").setValue(name);

        if (!TextUtils.isEmpty(email))
            mFirebaseDatabase.child(userId).child("email").setValue(email);
    }
}



User.java:


package com.example.windows.insertdatabase;

/**
 * Created by Windows on 29/03/2017.
 */
import com.google.firebase.database.IgnoreExtraProperties;

@IgnoreExtraProperties
public class User {

    public String name;
    public String email;

    // Default constructor required for calls to
    // DataSnapshot.getValue(User.class)
    public User() {
    }

    public User(String name, String email) {
        this.name = name;
        this.email = email;
    }
}

activity_main.xml


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
 >

    <TextView
        android:id="@+id/txt_user"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:textSize="20dp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">



            <EditText
                android:id="@+id/name"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textCapWords"
                android:maxLines="1" />



            <EditText
                android:id="@+id/email"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textEmailAddress"
                android:maxLines="1" />


        <Button
            android:id="@+id/btn_save"
            style="?android:textAppearanceSmall"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:background="@color/colorPrimary"

            android:textColor="@android:color/white"
            android:textStyle="bold" />

    </LinearLayout>

</LinearLayout>


jangan lupa pada firebase console  atur rule:

Gambar 2. Atur rule akses database


akhir aplikasi :
Gambar 3. Akhir aplikasi



Sekian dan Terima kasih
Silahkan request tutorial lainya






Thursday 30 March 2017

Menggunakan Database Firebase 1 -Android

Gambar 1. Logo Firebase


Salah layanan yang diberikan firebase yaitu real time database. Database ini dapat digunakan untuk membuat aplikasi chat atau aplikasi yang membutuhkan kecepatan dan keringanan dalam transaksi data. Ditinjau dari biaya yang dikeluarkan, penggunaan firebase lebih menguntungkan dibanding sewa hosting karena layanan firebase diberikan secara gratis namun pada batasan  penggunaan yang telah ditentukan.

Lihat besar biaya untuk layanan firebase:

Gambar 2. Tabel  biaya untuk layanan firebase

sumber: https://firebase.google.com/pricing/



1. Untuk cara mendaftar firebase lihat:
https://komputasistat.blogspot.co.id/2016/09/mendaftar-akun-project-di-firebase_25.html


2. Setelah selesai mendaftar 
kemudian pilih project android:

Gambar 3. memilih project Android

3. Daftar nama package aplikasi android dan SHA-1.
Nama package harus sesuai dengan nama package aplikasi. Cara mendapatkan SHA-1 dapat lihat di:
https://komputasistat.blogspot.co.id/2015/10/medapatkan-android-api-key.html

Gambar 4. Daftarkan nama package aplikasi android dan SHA-1

4. Dapatkan/unduh google service json seperti gambar 5

Gambar 5.  Mengunduh  google-services.json 

5. Copy google-services.json/hasil unduhan di direktori app seperti gambar 6.

Gambar 6.  Meng-copy google-services.json 



6. copy


classpath 'com.google.gms:google-services:3.0.0'

di build.gradle (Project:...)

Gambar 7. copy classpath gms



7. copy


    compile 'com.google.firebase:firebase-database:9.6.1'
}
apply plugin: 'com.google.gms.google-services'

di build,gradle(app

Gambar 8. copy library


lanjutanya:


Sekian dan terima kasih


Sunday 6 November 2016

Menggunakan Firebase Authentication 1 -Android

Gambar 1. Otentifikasi


Authentication atau otentikasi merupakan salah satu cara untuk mengenali user secara spesifik agar spesifikasi/fitur aplikasi dapat disesuaikan dengan kebutuhan user tersebut. Otentifikasi juga menguntungkan server dari segi keamanan karena komunikasi data hanya dapat dilakukan oleh user yang memiliki hak akses terhadap komunikasi tersebut. Permasalahan baru akan muncul  yaitu banyak aplikasi yang membutuhkan otentifikasi sehingga memaksa user untuk memiliki akun pada setiap aplikasi. Untuk mengatasi masalah tersebut kita dapat menggunakan akun user yang terdaftar pada aplikasi populer misal facebook, gmail, twitter dll. Penggunaan akun ini tentu melalui persetujuan user itu sendiri.
Salah satu cara untuk menggunakan akun user aplikasi populer pada aplikasi kita yaitu menggunakan Firebase Authentication. Cara ini lebih praktis  karena kita bisa menggunakan banyak aplikasi populer untuk otentifikasi tanpa harus mempelajari API masing-masing aplikasi populer tersebut.


nantikan example code nya..
Sekian dan Trimakasih


Sunday 25 September 2016

Mendaftar Akun / Project di Firebase Console

Gambar 1. Welcome to firebase

Firebase merupakan salah satu google cloud yang dapat membatu kita membuat aplikasi kompleks menjadi sederhana. Firebase dapat digunakan di berbagai platform (Android, IOS dan Web Based ). Fitur-fitur yang disediakan firebase untuk membantu kita mengembangkan aplikasi cukup banyak diantaranya:

Analytics

Cloud Messaging

Authentication

Realtime Database

Hosting

Notifications

AdMob


Untuk dapat menggunakan fitur Cloud Firebase kita harus mendaftarkan project kita terlebih dahulu di firebase console

 1. Mendaftarkan aplikasi ke Firebase Console

Mendaftarkan aplikasi ke firebase console beguna agar kita dapat menggunakan fitur firebase
1. buka link https://console.firebase.google.com/ sebelumya pastikan anda telah terdaftar di akun gmail/akun google
Gambar 2. Tampilan Firebase Console
2. Pilih Create New Project kemudian isikan Project name dan Country/region

Gambar 3. Membuat project baru

\Gambar 4. Membuat project pada firebase console
3. Tunggu beberapa saat hingga muncul dashboard project

Gambar 5. dashboard project

Sekian dan Trimakasih