DEV Community

Cover image for Angular 11 Firebase CRUD with Realtime Database
bezkoder
bezkoder

Posted on

7 3

Angular 11 Firebase CRUD with Realtime Database

In this tutorial, I will show you how to build Angular 11 CRUD App with Firebase Realtime Database that uses AngularFireDatabase service.

Full Article: https://bezkoder.com/angular-11-firebase-crud/

Overview

We’re gonna build an Angular 11 Firebase App using @angular/fire library in which:

  • Each Tutorial has key, title, description, published status.
  • We can create, retrieve, update, delete Tutorials.

Here are the screenshots:

– Create a new Tutorial:

Alt Text

Firebase Realtime Database right after the Operation:

Alt Text

– Retrieve all Tutorials with details when clicking on a Tutorial:

Alt Text

– Change status to Published/Pending using Publish/UnPublish button:

Alt Text

– Update the Tutorial details with Update button:

Alt Text

– Delete the Tutorial using Delete button:

Alt Text

– Delete all Tutorials with Remove All button:

Alt Text

AngularFireDatabase service

@angular/fire provides AngularFireDatabase service that allows us to work with the Realtime Database. It's an efficient, low-latency solution for apps that require synced states across clients in realtime.

import { AngularFireDatabase} from '@angular/fire/database';

export class TutorialService {
  constructor(private db: AngularFireDatabase) { }
}
Enter fullscreen mode Exit fullscreen mode

AngularFireDatabase for Object

The AngularFireObject is a service for manipulating and streaming object data which is created via AngularFireDatabase service.

- Create an object binding/ Retrieve:

tutorial: AngularFireObject<any>;
// db: AngularFireDatabase
this.tutorial = db.object('tutorial');

// or
Observable<any> tutorial = db.object('tutorial').valueChanges();
Enter fullscreen mode Exit fullscreen mode

- Create/Update an object:

const tutRef = db.object('tutorial');

// set() for destructive updates
tutRef.set({ title: 'zkoder Tutorial'});
Enter fullscreen mode Exit fullscreen mode

- Update an object:

const tutRef= db.object('tutorial');
tutRef.update({ url: 'bezkoder.com/zkoder-tutorial' });
Enter fullscreen mode Exit fullscreen mode

- Delete an object:

const tutRef = db.object('tutorial');
tutRef.remove();
Enter fullscreen mode Exit fullscreen mode

AngularFireDatabase for List

Through the AngularFireDatabase service, we can create AngularFireList service that helps to synchronize data as lists.

- Create a list binding/ Retrieve:
+ Get an Observable of data as a synchronized array of JSON objects without snapshot metadata.

tutorials: Observable<any[]>;
// db: AngularFireDatabase
this.tutorials = db.list('tutorials').valueChanges();
Enter fullscreen mode Exit fullscreen mode

+ Get an Observable of data as a synchronized array of AngularFireAction<DatabaseSnapshot>[] with metadata (the underyling DatabaseReference and snapshot key):

tutorials: Observable<any[]>;
this.tutorials = db.list('tutorials').snapshotChanges();
Enter fullscreen mode Exit fullscreen mode

- Create a List and push a new object:

const tutorialsRef = db.list('tutorials');
tutorialsRef.push({ title: 'zkoder Tutorial', url: 'bezkoder.com/zkoder-tutorial' });
Enter fullscreen mode Exit fullscreen mode

- Update a List: + destructive update using set(): delete everything currently in place, then save the new value

const tutorialsRef = db.list('tutorials');
tutorialsRef.set('key', { title: 'zkoder Tut#1', url: 'bezkoder.com/zkoder-tut-1' });
Enter fullscreen mode Exit fullscreen mode

+ non-destructive update using update(): only updates the specified values

const tutorialsRef = db.list('tutorials');
tutorialsRef.update('key', { title: 'zkoder new Tut#1' });
Enter fullscreen mode Exit fullscreen mode

- Delete an object in List:

const tutorialsRef = db.list('tutorials');
tutorialsRef.remove('key');
Enter fullscreen mode Exit fullscreen mode

- Delete entire List:

const tutorialsRef = db.list('tutorials');
tutorialsRef.remove();
Enter fullscreen mode Exit fullscreen mode

Technology

  • Angular 11
  • firebase 8
  • @angular/fire 6
  • rxjs 6

Implementation

For more details, implementation and Github, please visit:
https://bezkoder.com/angular-11-firebase-crud/

Further Reading

Related Posts:

Fullstack CRUD Application:

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay