Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Firebase Database Tutorial

Introduction to Firebase Database

Firebase Realtime Database is a cloud-hosted NoSQL database that lets you store and sync data between your users in real time. It's part of the Firebase suite of tools provided by Google for mobile and web application development.

Setting Up Firebase in an Android Project

Before you can use Firebase Database, you need to set up Firebase in your Android project.

  1. Create a Firebase project in the Firebase Console.
  2. Register your Android app with the Firebase project.
  3. Download the google-services.json file and place it in the app directory of your Android project.
  4. Add Firebase SDK dependencies in your build.gradle files.

Example: Adding Firebase Dependencies

Add the Google services classpath to your project-level build.gradle file:

    buildscript {
        dependencies {
            // Add this line
            classpath 'com.google.gms:google-services:4.3.10'
        }
    }
                

Add the Firebase SDK to your app-level build.gradle file:

    dependencies {
        // Add this line
        implementation 'com.google.firebase:firebase-database:20.0.3'
    }
                

Apply the Google services plugin at the bottom of your app-level build.gradle file:

    apply plugin: 'com.google.gms.google-services'
                

Writing Data to Firebase Database

One of the most common operations is writing data to the Firebase Realtime Database. You can write data using the setValue() method, which replaces any existing data at the specified location with the new data.

Example: Writing Data

    FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference myRef = database.getReference("message");

    myRef.setValue("Hello, World!");
                

Reading Data from Firebase Database

To read data from the Firebase Realtime Database, you can use the addValueEventListener() method to listen for changes to the data at a specified location.

Example: Reading Data

    FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference myRef = database.getReference("message");

    myRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            // This method is called once with the initial value and again
            // whenever data at this location is updated.
            String value = dataSnapshot.getValue(String.class);
            Log.d("TAG", "Value is: " + value);
        }

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

Updating Data in Firebase Database

To update data in Firebase Database, you can use the updateChildren() method, which updates specific fields without overwriting the entire object.

Example: Updating Data

    DatabaseReference ref = FirebaseDatabase.getInstance().getReference("users/user1");
    Map updates = new HashMap<>();
    updates.put("username", "newUsername");
    updates.put("email", "newEmail@example.com");

    ref.updateChildren(updates);
                

Deleting Data from Firebase Database

To delete data, you can use the removeValue() method, which removes the data at the specified database reference.

Example: Deleting Data

    DatabaseReference ref = FirebaseDatabase.getInstance().getReference("users/user1");
    ref.removeValue();
                

Using Firebase Database with Authentication

Firebase Authentication integrates seamlessly with Firebase Database, allowing you to secure your data based on the authenticated user. You can use Firebase Security Rules to enforce this.

Example: Securing Data with Authentication

In your Firebase Console, go to the Database section, and then open the "Rules" tab. Set your rules to the following:

    {
        "rules": {
            ".read": "auth != null",
            ".write": "auth != null"
        }
    }
                

This ensures that only authenticated users can read and write data.

Conclusion

Firebase Realtime Database is a powerful tool that allows you to store and sync data in real time across all clients. With its integration with Firebase Authentication, Firebase Cloud Functions, and other Firebase services, it becomes an essential part of modern Android development.

This tutorial has covered the basics of setting up, writing, reading, updating, and deleting data in Firebase Database. By leveraging these capabilities, you can build robust and scalable applications.