Firebase là gì? Dịch vụ backend tuyệt vời của Google

6
Dịch vụ dạy kèm gia sư lập trình
Bài này thuộc phần 1 của 8 phần trong series Học Firebase cơ bản

Chắc hẳn trong thời gian vừa qua, các bạn lập trình Android nói riêng, lập trình hệ thống nói chung, đã nghe rất nhiều về Firebase. Vậy Firebase là gì? Nó có đặc điểm gì mà cộng đồng lập trình phát cuồng về vậy?

Trên VNTALKING, mình cũng đã có một số bài viết về cách sử dụng Firebase. Tuy nhiên, mình chưa hệ thống hóa lại toàn bộ chức năng của dịch vụ.

Chúng ta cùng tìm hiểu nhé.

Firebase là gì

#Firebase là gì?

Firebase là một nền tảng phát triển ứng dụng di động và web. Họ cung cấp rất nhiều công cụ và dịch vụ để phát triển ứng dụng chất lượng, rút ngắn thời gian phát triển và phát triển cơ sở người dùng mà không cần quan tâm đến hạ tầng phần cứng.

Firebase là sự kết hợp giữa nền tảng cloud với hệ thống máy chủ cực kì mạnh mẽ của Google. Firebase cung cấp cho chúng ta những API đơn giản, mạnh mẽ và đa nền tảng trong việc quản lý, sử dụng database.

Ví dụ: Với Firebase, chúng ta có thể tự xây dựng một ứng chat thời gian thực như Facebook mesage, Zalo… trong vài ngày, thậm chí vài giờ.

Đơn giản vì giờ chúng ta chỉ cần phải lo phát triển phía Client( Ứng dụng mobile), còn phần backend(server) đã có Firebase lo, chúng ta chỉ cần gọi API là đủ.

Trên thế giới thì xu hướng sử dụng Firebase rất lớn. Không tin, các bạn check Google Trend sẽ rõ.

Xu hướng tìm hiểu Firebase
Firebase luôn có xu hướng tìm kiếm cao và ổn định

#Lịch sử phát triển Firebase

Firebase có tiền thân là Envolve. Đây là dịch vụ cung cấp những API để bạn dễ dàng tích hợp tính năng chat vào trang web.

Điều thú vị là người dùng Envolve sử dụng dịch vụ để truyền dữ liệu chứ không đơn thuần cho ứng dụng chat. Họ sử dụng Envolve để đồng bộ dữ liệu của những ứng dụng như game online, danh bạ, lịch…

Nhận biết được điều này, CEO của Envolve đã tách biệt hệ thống chat và đồng bộ dữ liệu thời gian thực thành 2 mảng riêng biệt.

Đến năm 2012, Firebase được thành lập như một công ty cung cấp dịch vụ Backend-as-a-Service theo thời gian thực.

Ngửi thấy mùi tiềm năng, năm 2014, Google lập tức mua lại Firebase với giá không được tiết lộ. Và giờ Google phát triển Firebase thành một dịch vụ đồ sộ như bạn đang thấy.

>> Đọc thêm: Tạo tính năng login không cần mật khẩu sử dụng Account Kit Android

#Những dịch vụ nổi bật của Firebasse

Hiện nay, danh mục dịch vụ của Firebase rất nhiều. Từ hệ thống chat thời gian thực, đến A/B testing… và cả ML KIT( Bộ công cụ phát triển Machine learning).

Các dịch vụ của Fireabse
Các dịch vụ của Firebase

Chúng ta cùng điểm qua một số dịch vụ nổi bật, hay được sử dụng nhất nhé!

1. Realtime Database

Firebase Realtime Database là kiểu dữ liệu NoSQL được lưu trữ trên cloud, cho phép bạn lưu trữ và đồng bộ dữ liệu người dùng theo thời gian thực.

Thực chất, dữ liệu của bạn được lưu dưới dạng JSON object, và developer có thể quản lý theo thời gian thực.

Dịch vụ Realtime Database

Như hình minh họa  trên, chỉ với một API duy nhất, bạn sẽ có được cả dữ liệu mới nhất và cả những bản update của nó.

Firebase la gì

Realtime syncing( đồng bộ theo thời gian thực) giúp người dùng truy cập vào dữ liệu của họ ở bất kỳ thiết bị nào.

Có một ưu điểm của Realtime Database là Firebase sẽ cung cấp cho bạn một bộ SDK để bạn dễ dàng xây dựng ứng dụng mobile, web mà không cần một server.

Khi thiết bị ngoại tuyến(offline), Realtime Database SDK sẽ sử dụng bộ nhớ của thiết bị. Ứng dụng vẫn tương tác với người dùng như bình thường. Đến khi thiết bị online trở lại, nó tự động đồng bộ lên server.

Ở đây có khái niệm mới là NoSQL. Đây là một khái niệm về database kiểu mới, khác với kiểu truyền thống là SQL. Bài viết này mình sẽ không trình bày về nó, hẹn các bạn ở bài viết sau( Nếu có nhiều bạn yêu cầu).

2. Authentication

firebase-la-gi-6

Với tính năng này của Firebase, bạn sẽ dễ dàng xây dựng tính năng login mà không cần phải sử dụng dữ liệu đăng ký riêng. Trước mình cũng có bài viết hướng dẫn các bạn sử dụng tính năng này để xây dựng tính năng xác thực bằng React native.

Firebase cung cấp một số phương pháp authenticate cho ứng dụng của bạn như:

  • Email & Password
  • Phone numbers
  • Google
  • Facebook
  • Twitter
  • Và còn nhiều hơn nữa!

Có một số ứng dụng nổi tiếng sử dụng tính năng này của Firebase như: Google Sign-in, Smart Lock, và Chrome Password Manager

3. Firebase Cloud Messaging (FCM)

Dịch vụ 3. Firebase Cloud Messaging (FCM)

Đây chính là tính năng khởi thủy của Firebase, giúp chúng ta xây dựng ứng dụng chat -trò chuyện. Giờ đây, nó còn cho phép bạn đẩy thông báo( push notification) tới nhiều thiết bị Android, IOS hay Web.

Bạn có thể gửi thông báo(tối đa 2KB) hay tin nhắn( giới hạn 4KB) với độ tin cậy cao và được tối ưu cho Battery.

Với FCM, bạn có thể tích hợp với Firebase Analytics để bạn có thể dễ dàng phân tích người dùng, từ đó đưa ra chiến lược marketing hợp lý.

>> Có ích cho bạn: Tạo giao diện Chat Head như Facebook Messenger đơn giản

4. Firebase Database Query

Bình thường, khi các bạn làm việc với database như MySQL, SQL Server… bạn muốn lấy dữ liệu ra thì sẽ cần phải query vào database với câu lệnh SQL rất phực tạp. Fireabase database query giúp đơn giản hóa quá trình này.

Firebase có 4 kiểu sắp xếp:

  • orderByKey()
  • orderByChild(‘child’)
  • orderByValue()
  • orderByPriority()

Hay như một số câu lệnh query lấy dữ liệu có giới hạn như:

  • startAt(‘value’)
  • endAt(‘value’)
  • equalTo(‘child_key’)
  • limitToFirst(10)
  • limitToLast(10)

Mình sẽ thử so sánh với SQL truyền thống nhé.

Với SQL, để thực hiện một câu lệnh query: Bạn sẽ cần chọn column từ một table nào đó. Ví dụ: mình chọn cột Users.

Sau đó bạn thực hiện truy vấn với những điều kiện mong muốn qua câu lệnh WHERE. Như ví dụ, mình muốn lấy tất cả Users có tên là “Anh Son”.

SELECT * FROM Users WHERE name === "Anh Son";

Nếu muốn giới hạn số lượng Users được lấy ra thì thêm câu lệnh LIMIT.

SELECT * FROM Users WHERE name === "GeekyAnts" LIMIT 10;

Trong Firebase, việc query cũng hoàn toàn tương tự:

const db = firebase.database();
const firebaseRef = db.child('child');
firebaseRef.orderByChild("users").equalTo("GeekyAnts ") .on("child_added", 
    function(snapshot){
        console.log(snapshot.key)
});

5. Remote Config

Dịch vụ remote config

Thông thường, các ứng dụng sẽ có mục Setting được lưu trữ ở từng thiết bị. Nếu người dùng mà gỡ ứng dụng thì lần sau cài đặt lại, ứng dụng sẽ mất các thiết lập trước đó.

Hoặc trường hợp khác, nếu người dùng cài đặt ứng dụng trên nhiều thiết bị khác nhau. Họ sẽ phải tự cấu hình thiết lập bằng tay trên từng thiết bị sao cho giống nhau.

Về phía nhà phát hành, nếu bạn muốn cập nhập thiết lập ứng dụng từ xa như: đến một ngày nào đặc biệt nào đó( Nghỉ lễ tết, ngày quốc tế phụ nữ…), bạn muốn đổi màu ứng dụng, muốn hiển thị Promotion nào đó để quảng cáo…

Không lẽ bạn phải bắt người dùng phải cập nhật ứng dụng để xem quảng cáo?

Remote Config là giải pháp giúp bạn thực hiện điều đó. Bạn sẽ chỉ phải cập nhật trên Fireabase mà ứng dụng phía người dùng sẽ tự đổi theo.

#Tạm kết

Trên đây, mình mới chỉ giới thiệu một số tính năng hay ho và phổ biến nhất thôi.

Nếu bạn thấy hứng thú hoặc có ý tưởng mới cho ứng dụng thì vào trang chủ fireabase để tìm hiểu thêm nhé.

Ngoài ra, bạn cũng có thể tham khảo một số bài viết hướng dẫn về Firebase khác của mình tại đây:

Qua bài viết này bạn đã hiểu Firebase là gì rồi đúng không? Đừng quên ủng hộ Vntalking – trang web học lập trình Android free 100% bạn nhé

Bạn nghĩ sao về Fireabse? Hãy cho mình biết cảm nhận của bạn ở bên dưới mục bình luận nhé!

Xem tiếp các bài trong Series
Phần kế tiếp: Xây dựng Car Location Tracking cho Android với Firebase
Dịch vụ phát triển ứng dụng mobile giá rẻ - chất lượng
Bài trướcKinh nghiệm đọc tài liệu để trở thành Developer giỏi
Bài tiếp theoThêm nút Loadmore vào RecyclerView trong Android
Tên đầy đủ là Dương Anh Sơn. Tốt nghiệp ĐH Bách Khoa Hà Nội. Mình bắt đầu nghiệp coder khi mà ra trường chẳng xin được việc đúng chuyên ngành. Mình tin rằng chỉ có chia sẻ kiến thức mới là cách học tập nhanh nhất. Các bạn góp ý bài viết của mình bằng cách comment bên dưới nhé !

6
Bình luận. Cùng nhau thảo luận nhé!

avatar
  Theo dõi bình luận  
Mới nhất Cũ nhất Nhiều voted nhất
Thông báo
Tu Truong Anh
Guest
Tu Truong Anh

SELECT * FROM Users WHERE name === “GeekyAnts” LIMIT 10;
LITMIT có thực sự tồn tại trong SQL?

ely spa
Guest
ely spa

Bài viết hay mình cố gắng để xử lý cho trang của mình