Update: Since Google I/O 2016 there have been some major updates to Firebase. Below is information related to the legacy service.
Firebase team member here.
tl;dr - Read this Quickstart, watch this video. Use FirebaseUI.
Firebase is a platform for mobile and web apps.
There's three main services to Firebase:
- Realtime database
- Authentication
- Static Hosting
Setup
For writing an Android app you need to download the Android SDK. If you have Android Studio 1.4 you can setup Firebase by going to File > Project Structure > Cloud
. Then click the Firebase checkbox.
Saving and Retrieving data
Every Firebase app has a name, and that is used to in a URL to access your database. Data is stored in Firebase in JSON. Each piece has a URL mapped to its location. To get or save data to that location you create a Firebase reference.
// Create a reference to the Firebase database
Firebase ref = new Firebase("https:<MY-FIREBASE-APP>.firebaseio.com/data");
// Save Data
ref.setValue("Hello");
// Sync data
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
System.out.println(snapshot.getValue());
}
@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println("The read failed: " + firebaseError.getMessage());
}
});
FirebaseUI
The Firebase SDK is good at saving and retrieving data, but it is agnostic of Android SDK components like ListAdapter
s. For that you can use the FirebaseUI library.
FirebaseUI allows you to quickly connect common UI elements to the Firebase database for data storage. Below is an example of using FirebaseUI with a FirebaseListAdapter
.
mAdapter = new FirebaseListAdapter<ChatMessage>(this, ChatMessage.class, android.R.layout.two_line_list_item, ref) {
@Override
protected void populateView(View view, ChatMessage chatMessage) {
((TextView)view.findViewById(android.R.id.text1)).setText(chatMessage.getName());
((TextView)view.findViewById(android.R.id.text2)).setText(chatMessage.getMessage());
}
};
messagesView.setListAdapter(mAdapter);
That's just the gist of everything. The documentation of Firebase is pretty comprehensive (and human readable if I do so myself).