0
0
FirebaseHow-ToBeginner · 3 min read

How to Use push() in Firebase Realtime Database

Use push() in Firebase Realtime Database to add a new child node with a unique key automatically generated. It creates a unique ID and returns a reference where you can set data with set() or update().
📐

Syntax

The push() method creates a new child node with a unique key under a specified database reference. You then use set() or update() on the returned reference to save data.

  • ref.push(): Creates a new child with a unique key.
  • newRef.set(data): Saves data at the new child location.
javascript
const newRef = ref.push();
newRef.set({ key: 'value' });
💻

Example

This example shows how to add a new message to a 'messages' list in the Realtime Database using push(). It creates a unique ID for each message automatically.

javascript
import { initializeApp } from 'firebase/app';
import { getDatabase, ref, push, set } from 'firebase/database';

const firebaseConfig = {
  apiKey: 'YOUR_API_KEY',
  authDomain: 'YOUR_AUTH_DOMAIN',
  databaseURL: 'https://your-database-url.firebaseio.com',
  projectId: 'YOUR_PROJECT_ID',
  storageBucket: 'YOUR_STORAGE_BUCKET',
  messagingSenderId: 'YOUR_SENDER_ID',
  appId: 'YOUR_APP_ID'
};

const app = initializeApp(firebaseConfig);
const db = getDatabase(app);
const messagesRef = ref(db, 'messages');

function addMessage(text) {
  const newMessageRef = push(messagesRef);
  set(newMessageRef, {
    text: text,
    timestamp: Date.now()
  });
  console.log('Message added with ID:', newMessageRef.key);
}

addMessage('Hello, Firebase!');
Output
Message added with ID: -Mxyz123abc456def789
⚠️

Common Pitfalls

Common mistakes when using push() include:

  • Not using the returned reference to set data, which means no data is saved.
  • Trying to use push() without a valid database reference.
  • Overwriting data by using set() on the parent ref instead of the pushed child ref.

Always use the reference returned by push() to save your data.

javascript
/* Wrong way: push() called but data set on parent ref */
const wrongRef = ref(db, 'messages');
push(wrongRef);
set(wrongRef, { text: 'This overwrites all messages' });

/* Right way: use returned ref from push() */
const correctRef = push(ref(db, 'messages'));
set(correctRef, { text: 'This adds a new message' });
📊

Quick Reference

MethodDescription
push()Creates a new child node with a unique key.
set(data)Saves data at the specified database reference.
ref(db, path)Gets a reference to a database location.

Key Takeaways

Use push() to create unique child nodes automatically in Realtime Database.
Always use the reference returned by push() to set or update data.
Avoid overwriting data by not calling set() on the parent reference after push().
push() helps safely add items to lists without key conflicts.
Remember to initialize Firebase and get a valid database reference before using push().