Android Tutorial
Software Setup and Configuration
Android Studio
File Structure
Components
Core Topics
Layout
View
Button
Intent and Intent Filters
Toast
RecyclerView
Fragments
Adapters
Other UI Component
Image Loading Libraries
Date and Time
Material Design
Bars
Working with Google Maps
Chart
Animation
Database
Advance Android
Jetpack
Architecture
App Publish
App Monetization
Firebase Realtime Database is a cloud-hosted NoSQL database that lets you store and sync data in real-time. Here's how you can save data to Firebase Realtime Database from an Android app:
If you haven't already set up Firebase for your Android project:
In your app's build.gradle
file, add the Firebase Realtime Database dependency:
implementation 'com.google.firebase:firebase-database:19.7.0' // Check for the latest version
FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference myRef = database.getReference("your_data_node");
You can save data to Firebase Realtime Database in different ways:
For basic data types like Strings, Integers, etc.:
myRef.setValue("Hello, World!");
If you have a custom object, for instance, User
:
public class User { public String username; public String email; public User() { // Default constructor required for calls to DataSnapshot.getValue(User.class) } public User(String username, String email) { this.username = username; this.email = email; } } User user = new User("JohnDoe", "john.doe@example.com"); myRef.setValue(user);
For lists or maps:
Map<String, String> userData = new HashMap<>(); userData.put("name", "John Doe"); userData.put("email", "john.doe@example.com"); myRef.setValue(userData);
To know when the data write is complete or if it failed:
myRef.setValue("Hello, World!").addOnCompleteListener(task -> { if (task.isSuccessful()) { // Write was successful! } else { // Write failed Log.w(TAG, "writeError", task.getException()); } });
By default, Firebase Realtime Database rules might prevent writes unless authenticated. Make sure you set up your rules appropriately to allow or restrict access as needed. For development, you can temporarily set your database to be publicly accessible (be sure to secure it before going live):
{ "rules": { ".read": true, ".write": true } }
This setup should help you get started with saving data to Firebase Realtime Database from your Android app. As you work more with Firebase, you'll discover other features and configurations that can be beneficial for your specific application.
// Step 1: Get DatabaseReference instance DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("your_data_path"); // Step 2: Write data to the database databaseReference.child("key").setValue("value");
Android Firebase Realtime Database data insertion example:
// Get DatabaseReference instance DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("users"); // Write data to the database String userId = "user123"; User user = new User("John Doe", "john@example.com"); databaseReference.child(userId).setValue(user);
Saving data to Firebase Realtime Database from Android app:
DatabaseReference
and using setValue()
:// Get DatabaseReference instance DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("products"); // Write data to the database String productId = "product123"; Product product = new Product("Sample Product", 19.99); databaseReference.child(productId).setValue(product);
Using DatabaseReference to save data in Firebase Database in Android:
DatabaseReference
class to save data to Firebase Realtime Database:// Get DatabaseReference instance DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("tasks"); // Write data to the database String taskId = "task123"; Task task = new Task("Complete Assignment", false); databaseReference.child(taskId).setValue(task);
Android Firebase Database transaction for data saving:
// Get DatabaseReference instance DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("counter"); // Use transaction to increment a counter databaseReference.runTransaction(new Transaction.Handler() { @Override public Transaction.Result doTransaction(MutableData mutableData) { if (mutableData.getValue() == null) { mutableData.setValue(1); } else { long count = (long) mutableData.getValue(); mutableData.setValue(count + 1); } return Transaction.success(mutableData); } @Override public void onComplete(DatabaseError databaseError, boolean committed, DataSnapshot dataSnapshot) { if (committed) { // Transaction successful } else { // Transaction failed if (databaseError != null) { Log.e("FirebaseTransaction", "Error: " + databaseError.getMessage()); } } } });