BÀI 19 - GIỚI THIỆU VỀ FIREBASE TRONG LẬP TRÌNH ANDROID

Bạn có thể truy cập trang chủ của firebase tại đây: https://firebase.google.com

#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õ.

#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).

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.

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ó.

  • 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.

2. Authentication

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.

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)

  • Đâ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ý.

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

  • 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é.