I want to create an android app, where I, as an author, upload my college notes and anyone can download it. I read that firebase can help me with this. Can anyone please explain what is firebase and how to use it with my reference? Thank you!
Firebase team member here.
Firebase is a platform for mobile and web apps.
There's three main services to Firebase:
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.
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());
}
});
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).