Firebase – Android: Tổng quan

Tram Ho

1. 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. Check Google Trend là thấy ngay:

2. Lịch sử phát triển của 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. 😄

3. Những dịch vụ nổi bật của Firebase

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

3.1. Firebase Cloud Messaging

  • Firebase Cloud Messaging (FCM) là một giải pháp nhắn tin đa nền tảng, nó cho phép bạn gửi tin nhắn một cách đáng tin cậy mà không mất phí.
  • Sử dụng FCM bạn có thể gửi thông báo cho ứng dụng khi có email mới hoặc có dữ liệu mới để thực hiện đồng bộ hóa. Với các trường hợp sử dụng nhắn tin real time thì tin nhắn có thể có lưu lượng lên đến 4KB.

Nó làm việc như thế nào?

Một FCM implement hai thành phần chính để gửi và nhận:
1. Một môi trường đáng tin cậy như Cloud Function cho Firebase hoặc một app server để build và gửi tin nhắn.
2. Một client app như IOS, Android hoặc Web(JavaScrip) để nhận tin nhắn qua các service dành riêng cho từng nền tảng.

Xem thêm tại đây để biết thêm thông tin chi tết về các thành phần của FCM và cơ chế hoạt động của nó !

3. 2. Cloud Firestore

Sử dụng cở sở dữ liệu đám mây NoSQL linh hoạt và có thể mở rộng để lưu trữ và đồng bộ dữ liệu cho client và server.
Cloud Firestore là một cơ sở dữ liệu linh hoạt và có thể mở rộng được dành cho mobile, web và server được phát triển từ Firebase và Google Cloud Platform. Giống như Firebase Realtime Database, nó giữ dữ liệu của bạn được đồng bộ trên các client app thông qua trình lắng nghe thời gian thực, và hỗ trợ ngoại tuyến cho thiết bị di động hoặc web để bạn có thể xây dựng ứng dụng đáp ứng hoạt động được bất kể mạng yếu hay kết nối mạng. Cloud Firestore cũng có thể được sử dụng kết hợp với các dịch vụ Firebase hoặc Google Cloud Platform, bao gồm cả Cloud Functions.

Nó làm việc như thế nào?

Cloud Firestore là cơ sở dữ liệu NoSQL được lưu trữ trên nền tảng đám mây mà các ứng dụng web, IOS, Android có thể truy cập trực tiếp thông qua SDK native. Cloud Firestore cũng được dùng trong Node.js, Java, Python và Go SDKs, ngoại trừ REST và RPC APIs.
Theo mô hình dữ liệu NoSQL của Cloud Firestore, bạn lưu trữ dữ liệu trong documents, nó chứa các trường mà có thể map tới các giá trị. Những documents này lại được lưu trữ trong các collections. Documents hỗ trợ nhiều kiểu data khác nhau, từ string và số đơn giản đến các objects phức tạp. Bạn cũng có thể tạo subcollections trong các documents và xây dựng các cấu trúc dữ liệu phân cấp mở rộng khi cơ sở dữ liệu của bạn phát triển. Cloud Firestore data model hỗ trợ bất kỳ cấu trúc dữ liệu nào hoạt động tốt nhất cho app của bạn.

Ngoài ra, truy vấn trong Cloud Firestore là linh hoạt và hiệu quả. Tạo các truy vấn để truy xuất dữ liệu ở cấp độ documents mà không cần truy xuất toàn bộ collection hay subcolletion. Thêm sort, filter và limit cho các câu truy vấn hoặc cursor để phân trang kết quả. Để lưu trữ dữ liệu trong ứng dụng hiện tại mà không cần truy xuất toàn bộ cơ sở dữ liệu mỗi khi có cập nhật thì thêm realtime listener. Sau khi thêm vào thì mỗi khi có sự thay đổi, trình lắng nghe sẽ thông báo cho bạn và chỉ cần truy xuất các thay đổi mới.
Bảo về quyển truy cập vào dữ liệu của bạn trong Cloud Firestore bằng Firebase Authentication và Cloud Firestore Security Rules cho Android, iOS và JavaScript, hoặc Identity and Access Management (IAM) cho các ngôn ngữ server.
Xem thêm tại đây để biết rõ thêm về Cloud Firestore nhé~

3.3. Firebase Analytics

  • Google Analytics là một giải pháp đo lường app miễn phí, nó cung cấp cái nhìn sâu sắc về việc sử dụng ứng dụng và sự tham gia của người dùng. Cái cốt lõi của Firebase là Google Analytics, một giải pháp phân tích miễn phí và không giới hạn. Analytics tích hợp trên các tính năng của Firebase và cung cấp cho bạn các report không giới hạn cho dưới 500 sự kiện khác nhau mà bạn có thể xác định nhờ Firebase SDK. Các báo cáo Analytics giúp bạn hiểu rõ hơn các hành vi của người dùng, cho phép bạn đưa ra các quyết định sáng suốt về tiếp thị ứng dụng và tối ưu hóa hiệu suất.

Vậy nó làm việc như thế nào?

  • Google Analytics giúp bạn hiểu cách người dùng sử dụng các web, iOS hay Android app. SDK sẽ tự động ghi lại một số sự kiện(events) và thuộc tính người dùng (user properties) và cũng cho phép bạn định nghĩa các custom events để đo lường những sự kiện quan trọng liên quan tới business. Khi dữ liệu được ghi lại, nó được lưu trong dashboard trên Firebase console. Dashboard này cung cấp cái nhìn chi tiết về data của bạn – ví dụ như: mặt hàng nào được mua nhiều nhất, khi nào người dùng hoạt động…
  • Analytics cũng tích hợp với một số tính năng khác của Firebase.
  • Nó giúp bạn hiểu về hành vi người dùng, vì vậy bạn có thể đưa ra các quyết định kinh doanh trên app của bạn. Thấy được hiệu suất của các chiến lược kinh doanh để chọn ra cách thức hiệu quả nhất, mang lại giá trị người dùng cao nhất. Nếu bạn cần thực hiện các phân tích khác hoặc kết nối data của bạn với các nguồn khác, bạn có thể liên kết dữ liệu Analytics của mình với BigQuery, mở rộng phân tích trên các truy vấn lớn hơn và kết nối nhiều nguồn dữ liệu.

Muốn tìm hiểu thêm về Firebase Analytics thì xem thêm tại đây nhé!

3.4. Firebase Remote Config

  • Thay đổi hành vi và cách thức hiển thị app mà không cần đưa ra một bản update khác, không tốn chi phí và không giới hạn các hoạt động của người dùng.

Firebase Remote Config là một cloud service mà nó giúp bạn thay đổi hành vi và cách hiển thị app của bạn mà không cần yêu cầu người dùng download để update lại app. Ví dụ khi khách hàng đổi các Base Url để thay đổi môi trường từ dev sang product. Khi sử dụng Remote Config, bạn cần tạo ra các giá trị mặc định điều khiển app. Sau đó, bạn có thể sử dụng Firebase console hoặc Remote Config REST API để ghi đè lại các giá trị mặc định đã được khở tạo trước đó. App của bạn sẽ được điều khiển khi mà apply xong các giá trị, và nó có thể thường xuyên check for update và apply các giá trị mà không làm ảnh hưởng đáng kể đến hiệu suất.

Vậy nó làm việc như thế nào??

  • Remote Config bao gồm thư viện client xử lý các tác vụ quan trọng như fetching parameter values và lưu vào bộ đệm, trong khi vẫn cho phép bạn kiểm soát khi các giá trị mới được kích hoạt để không làm ảnh hưởng đến trải nghiệm người dùng . Kiểm soát sự thay đổi này giúp cho trải nghiệm người dùng không bị ảnh hưởng.
  • Các phương thức get() cung cấp quyền truy cập duy nhất đến các giá trị tham số.
  • Khi sử dụng các giá trị mặc định trong app, bạn sử dụng Firebase console hoặc Remote Config REST API để tạo các tham số có tên giống tên mà bạn sử dụng trong file mặc định dưới app. Với mỗi tham số, bạn có thể ghi đè giá trị dưới app từ server. Hình dưới đây cho thấy cách các giá trị tham số được ưu tiên trong Remote Config backend và trong ứng dụng của bạn:

Xem thêm về Firebase Remote Config!

3.5. Firebase Dynamic Links

  • Firebase Dynamics Links là những link mà nó làm việc theo cách mà bạn muốn, trên nhiều nền tảng, và bất kể ứng dụng của bạn đã được cài đặt hay chưa.
  • Với Dynamics Links, người dùng sẽ có được trải nghiệm tốt nhất cho nền tảng mà họ mở link. Nếu người dùng mở Dynamics Links trên iOS hoặc Android, họ có thể được điều hướng đến nội dung được liên kết trong ứng dụng gốc. Nếu người dùng mở cùng một Dynamics Links trong trình duyệt trên máy tính, chúng có thể được đưa đến nội dung tương đương trên trang web.
  • Ngoài ra, Dynamics Links hoạt độngtheo cách: nếu người dùng mở Dynamics Links trên iOS hoặc Android mà không cài đặt ứng dụng gốc, người dùng có thể được nhắc cài đặt ứng dụng; sau khi cài đặt, ứng dụng sẽ khởi động và có thể truy cập các link đó.

Vậy chúng làm việc như thế nào?

  • Bạn tạo một Dynamic Links dùng Firebase console, dùng một REST API, iOS hoặc Android Builder API, hoặc tự tạo bằng cách thêm các tham số vào các miền cụ thể theo format. Các tham số này chỉ định các link bạn muốn mở, tùy thuộc vào nền tảng của người dùng và liệu ứng dụng của bạn có được cài đặt hay không.
  • Khi người dùng mở một Dynamic Links, nếu app chưa được cài đặt thì người dùng sẽ được điều hướng tới App Store hoặc Play Store để cài ứng dụng, sau khi cài xong thì mở app.

Tìm hiểu thêm về Dynamic Links tại đây nhé!

Trên đây là một số tính năng Firebase cung cấp, tiếp theo mình sẽ đi vào chi tiết từng tính năng, mọi người chú ý đón xem phần tiếp theo nhé!

Tham khảo:

https://firebase.google.com/docs

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo