Firebase là gì? Các đặc điểm nổi bật của Firebase

2943
13-11-2018
Firebase là gì? Các đặc điểm nổi bật của Firebase

Backend-as-a-Service (BaaS) đã trở thành một loại Dịch vụ đám mây phổ biến. Chúng cho phép doanh nghiệp tạo ra các sản phẩm mà không cần đầu tư vào việc xây dựng cơ sở hạ tầng backend của họ. Trong số các giải pháp BaaS hiện có, Firebase là nền tảng nhận được rất nhiều sự chú ý khi cung cấp các dịch vụ hữu ích giúp đẩy nhanh quá trình phát triển sản phẩm. Trong bài viết này, hãy cùng Bizfly Cloud tìm hiểu chi tiết hơn về Firebase cũng như những ưu và nhược điểm của nó. 

Khái niệm Firebase

Firebase là một Backend-as-a-Service (Baas), hoạt động trên nền tảng Cloud. Nó cung cấp cho các nhà phát triển nhiều công cụ và dịch vụ khác nhau để giúp họ phát triển các ứng dụng chất lượng cao, phát triển cơ sở người dùng và kiếm lợi nhuận. Nó được xây dựng trên cơ sở hạ tầng của Google. Firebase có ba dịch vụ chính: cơ sở dữ liệu thời gian thực, xác thực người dùng và lưu trữ. 

Tóm tắt lịch sử

- Năm 2011, Firebase ban đầu là một nhà cung cấp dịch vụ trò chuyện trực tuyến cho các trang web khác nhau thông qua API và chạy với tên Envolve, do James Tamplin & Andrew Lee sáng lập.

- Năm 2012, Firebase trở thành một công ty riêng biệt. Ban đầu, Firebase được phát triển cho các ứng dụng trò chuyện thời gian thực nhưng sau đó, nó được một số nhà phát triển trò chơi sử dụng để lưu trữ trạng thái trò chơi cho các trò chơi nhiều người chơi trong thời gian thực. Vì vậy, cuối cùng James và Andrew quyết định chia Firebase thành 2 phần - một mô-đun trò chuyện và một mô-đun khung trò chơi.

- Vào năm 2014, Google đã mua Firebase và bắt đầu duy trì và cải tiến Firebase. Ngày nay, chúng ta biết đến nó với cái tên Google Firebase.

- Vào tháng 5 năm 2016, Firebase đã mở rộng các dịch vụ của mình để trở thành một nền tảng thống nhất cho các nhà phát triển di động. Giờ đây, nó đã tích hợp với nhiều dịch vụ khác của Google, bao gồm AdMob, Google Cloud Platform và Google Ads, để cung cấp các sản phẩm rộng hơn và mở rộng quy mô cho các nhà phát triển.

- Google đã mua lại Fabric và Crashlytics từ Twitter vào tháng 1 năm 2017 để thêm các dịch vụ Fabric và Crashlytics vào Firebase. Firebase đã ra mắt Cloud Firestore vào tháng 10 năm 2017. Đây là cơ sở dữ liệu tài liệu thời gian thực là sản phẩm kế thừa cho Cơ sở dữ liệu thời gian thực của Firebase ban đầu.

Dịch vụ Firebase

Dịch vụ Firebase có thể được chia thành hai nhóm:

Firebase là gì? Các đặt điểm của Firebase - Ảnh 1.

Phát triển và thử nghiệm ứng dụng của bạn:

  • Realtime Database
  • Auth
  • Test Lab
  • Crashlytics
  • Cloud Functions
  • Firestore
  •  Cloud Storage
  • Performance Monitoring
  • Crash Reporting
  •  Hosting

Phát triển và thu hút đối tượng của bạn:

  • Firebase Analytics
  • Invites
  • Cloud Messaging
  • Predictions
  • AdMob
  • Dynamic Links
  • Adwords
  • Remote Config
  • App Indexing

Realtime Database

Firebase Realtime Database là một cloud-hosted NoSQL database cho phép bạn lưu trữ và đồng bộ hóa người dùng trong thời gian thực.

Realtime Database thực sự chỉ là một đối tượng JSON lớn mà các nhà phát triển có thể quản lý trong thời gian thực.

Firebase là gì? Các đặt điểm của Firebase

Chỉ với một API duy nhất, cơ sở dữ liệu Firebase cung cấp cho ứng dụng cả giá trị hiện tại và tương lai của dữ liệu.

Firebase cung cấp cho ứng dụng cả giá trị hiện tại và tương lai

Đồng bộ hóa trong thời gian thực giúp người dùng dễ dàng truy cập dữ liệu của họ từ bất kỳ thiết bị nào, có thể là web hoặc thiết bị di động. Cơ sở dữ liệu thời gian thực cũng giúp người dùng có khả năng cộng tác với nhau.

Một lợi ích tuyệt vời khác của Cơ sở dữ liệu thời gian thực là nó chứa mobile và web SDKs, cho phép bạn tạo ứng dụng mà không cần máy chủ.

Khi người dùng của bạn ngoại tuyến, Realtime Database SDKs sử dụng bộ nhớ cache cục bộ trên thiết bị để phân phát và lưu trữ thay đổi. Khi thiết bị trực tuyến, dữ liệu cục bộ sẽ tự động được đồng bộ hóa.

Realtime Database cũng có thể tích hợp với Firebase Authentication để cung cấp quy trình xác thực đơn giản và trực quan.

Authentication

Firebase Authentication cung cấp backend services, easy-to-use SDKs, và ready-made UI libraries

Firebase Authentication cung cấp backend services, easy-to-use SDKs, và ready-made UI libraries để xác thực người dùng cho ứng dụng.

Thông thường, sẽ mất vài tháng để thiết lập nên một hệ thống xác thực của riêng bạn. Và sau đó, bạn sẽ phải cần đến một đội ngũ chuyên viên để duy trì hệ thống đó. Nhưng nếu sử dụng Firebase, bạn có thể thiết lập toàn bộ hệ thống chỉ với dưới 10 dòng mã, bao gồm cả các hoạt động phức tạp như hợp nhất tài khoản.

Bạn có thể xác thực người dùng ứng dụng của mình thông qua các phương pháp sau:

  • Email và mật khẩu
  • Số điện thoại
  • Google
  • Facebook
  • -Twitter

Sử dụng Xác thực Firebase giúp việc xây dựng hệ thống xác thực an toàn dễ dàng hơn, đồng thời cải thiện sign-in và onboarding experience cho người dùng cuối.

Firebase Authentication được tạo bởi cùng một người trong Google Sign-in, Smart Lock, và Chrome Password Manager.

Firebase Cloud Messaging (FCM)

Firebase Cloud Messaging (FCM) cung cấp kết nối đáng tin cậy và tiết kiệm pin giữa máy chủ và thiết bị cho phép bạn gửi và nhận tin nhắn cũng như thông báo trên iOS, Android và web miễn phí.

Bạn có thể gửi tin nhắn thông báo (giới hạn 2KB) và tin nhắn dữ liệu (giới hạn 4KB).

Sử dụng FCM, bạn có thể dễ dàng nhắm mục tiêu các thư bằng cách sử dụng các phân đoạn được xác định trước hoặc tạo các phân đoạn của riêng bạn bằng cách sử dụng nhân khẩu học và hành vi. Bạn có thể gửi tin nhắn tới một nhóm thiết bị được đăng ký với các chủ đề cụ thể.

FCM có thể gửi tin nhắn ngay lập tức hoặc vào thời điểm tương lai theo múi giờ địa phương của người dùng. Bạn có thể gửi dữ liệu ứng dụng tùy chỉnh như đặt mức độ ưu tiên, âm thanh và ngày hết hạn cũng như theo dõi các sự kiện chuyển đổi tùy chỉnh.

Điểm nổi bật của FCM là hầu như không có bất kỳ mã hóa nào liên quan! FCM được tích hợp hoàn toàn với Firebase Analytics, mang đến cho bạn sự tương tác chi tiết (detailed engagement) và theo dõi chuyển đổi (conversion tracking).

Firebase Cloud Messaging

Bạn cũng có thể sử dụng A/B testing để thử các phiên bản khác nhau của notification messages và sau đó chọn một phiên bản hoạt động tốt nhất với mục tiêu đã định.

Firebase Database Query

Truy vấn cơ sở dữ liệu Firebase

Firebase đã đơn giản hóa quá trình truy xuất dữ liệu cụ thể từ cơ sở dữ liệu thông qua truy vấn. Truy vấn được tạo bằng cách kết hợp một hoặc nhiều phương pháp lọc.

Firebase có 4 ordering functions:

  • orderByKey()
  • orderByChild('child')
  • orderByValue()
  • orderByPriority()

Lưu ý rằng bạn sẽ chỉ nhận được dữ liệu từ một truy vấn nếu bạn đã sử dụng phương thức on () hoặc once ().

Bạn cũng có thể sử dụng các hàm truy vấn nâng cao này để hạn chế thêm dữ liệu:

startAt('value')

endAt('value')

equalTo('child_key')

limitToFirst(10)

limitToLast(10)

Trong SQL, các vấn đề cơ bản về truy vấn liên quan đến hai bước. Đầu tiên, bạn chọn các cột từ bảng. Ở đây tôi chọn cột Users. Tiếp theo, bạn có thể áp dụng một hạn chế cho truy vấn của bạn bằng mệnh đề WHERE. Từ truy vấn dưới đây, tôi sẽ nhận được một danh sách Người dùng có tên là GeekyAnts.

Firebase là gì? Các đặt điểm của Firebase - Ảnh 6.

Bạn có thể sử dụng mệnh đề LIMIT, điều này sẽ hạn chế số lượng kết quả nhận được từ truy vấn.

Firebase là gì? Các đặt điểm của Firebase - Ảnh 7.

Trong Firebase, truy vấn cũng bao gồm hai bước. Đầu tiên, bạn tạo một tham chiếu đến khóa cha và sau đó bạn sử dụng một hàm thứ tự. Tùy chọn, bạn cũng có thể nối thêm một hàm truy vấn để hạn chế nâng cao hơn.

Firebase là gì? Các đặt điểm của Firebase - Ảnh 8.

Làm thế nào để lưu trữ dữ liệu? Firebase Storage

Firebase Storage là một giải pháp độc lập cho việc tải lên nội dung của người dùng, như hình ảnh và video từ thiết bị iOS và Android cũng như Web.

Firebase Storage được thiết kế đặc biệt để mở rộng ứng dụng của bạn, cung cấp bảo mật và đảm bảo khả năng phục hồi mạng.

Firebase Storage sử dụng hệ thống tệp/ thư mục đơn giản để cấu trúc dữ liệu của nó.

Firebase là gì? Các đặt điểm của Firebase - Ảnh 9.

Firebase Test Labs

Firebase Test Labs cung cấp một số lượng lớn thiết bị thử nghiệm trên thiết bị di động giúp bạn kiểm tra ứng dụng của mình.

Firebase Test Labs có 3 chế độ kiểm tra:

  • Instrumentation Test

Đây là các bài kiểm tra cụ thể được viết để kiểm tra ứng dụng của chính bạn, sử dụng các frameworks như Espresso và UI Automator 2.0.

  • Robo Test

Bài kiểm tra này dành cho những người chỉ muốn rảnh tay , mọi việc sẽ được Firebase xử lý. Firebase Test Labs có thể mô phỏng liên lạc của người dùng và xem mỗi thành phần của ứng dụng hoạt động như thế nào.

  • Game Loop Test

Test Labs hỗ trợ game app testing. Nó đi kèm với một beta support cho việc sử dụng "demo mode", nơi các ứng dụng trò chơi chạy trong khi mô phỏng các hành động của người chơi.

Remote Config

Firebase là gì? Các đặt điểm của Firebase - Ảnh 10.

Remote config về cơ bản cho phép chúng ta xuất bản các bản cập nhật cho người dùng ngay lập tức. Cho dù bạn muốn thay đổi bảng màu cho màn hình, bố cục cho một phần cụ thể trong ứng dụng hoặc hiển thị tùy chọn quảng cáo/theo mùa…, điều này hoàn toàn có thể thực hiện được bằng các thông số bên máy chủ mà không cần xuất bản phiên bản mới.

Remote config giúp:

  • Cập nhật nhanh chóng và dễ dàng các ứng dụng mà không cần phải xuất bản bản dựng mới lên app/play store.
  • Dễ dàng cài đặt cách phân đoạn hoạt động trong ứng dụng dựa trên người dùng/ thiết bị đang sử dụng nó.

Firebase App Indexing

Firebase là gì? Các đặt điểm của Firebase - Ảnh 11.

Để Google lập chỉ mục nội dung của ứng dụng, hãy sử dụng cùng một URL trong ứng dụng mà bạn sử dụng trên trang web của mình và xác minh rằng bạn sở hữu cả ứng dụng và trang web của mình. Google Search thu thập thông tin các liên kết trên trang web của bạn và phục vụ chúng trong kết quả Tìm kiếm. Sau đó, những người dùng đã cài đặt ứng dụng trên thiết bị sẽ truy cập trực tiếp vào nội dung trong ứng dụng khi họ nhấp vào liên kết.

Firebase Dynamic Links

Deep links là các URL đưa bạn đến một nội dung. Hầu hết các liên kết web là deep links.

Giờ đây, Firebase có thể sửa đổi deep links thành Dynamic Links. Dynamic Links cho phép người dùng trực tiếp đến một vị trí cụ thể trong ứng dụng của bạn.

Có 3 cách sử dụng cơ bản cho Dynamic Links:

- Chuyển đổi người dùng Web di động thành người dùng ứng dụng gốc.

Firebase là gì? Các đặt điểm của Firebase - Ảnh 12.

Tăng conversion cho user-to-user sharing. Bằng cách chuyển đổi người dùng ứng dụng của bạn, khi ứng dụng được chia sẻ với người dùng khác, bạn có thể bỏ qua thông báo chung được hiển thị khi người dùng tải xuống từ cửa hàng. Thay vào đó, bạn có thể hiển thị cho họ thông điệp chào mừng được cá nhân hóa.

Firebase là gì? Các đặt điểm của Firebase - Ảnh 13.

Thúc đẩy lượt cài đặt từ bên thứ ba. Bạn có thể sử dụng mạng truyền thông xã hội, email và SMS để tăng đối tượng mục tiêu. Khi người dùng cài đặt ứng dụng, họ có thể xem nội dung chính xác của các chiến dịch.

Firebase là gì? Các đặt điểm của Firebase - Ảnh 14.

Firestore

Firebase là gì? Các đặt điểm của Firebase - Ảnh 15.

Cloud Firestore là một NoSQL document database cho phép bạn dễ dàng lưu trữ, đồng bộ hóa và truy vấn dữ liệu cho các ứng dụng di động và web ở quy mô toàn cầu.

Mặc dù điều này nghe có vẻ giống như Realtime Database, nhưng Firestore mang lại nhiều điều mới mẻ hơn cho nền tảng, làm nó trở nên hoàn toàn khác với Realtime Database.

Improved Querying and Data Structure

Realtime Database lưu trữ dữ liệu dưới dạng một cây JSON khổng lồ, Cloud Firestore có một cách tiếp cận có cấu trúc hơn nhiều. Firestore giữ dữ liệu bên trong các đối tượng được gọi là tài liệu. Các tài liệu này bao gồm các key-value pairs và có thể chứa bất kỳ loại dữ liệu nào, từ strings tới binary data đến even objects giống với JSON trees (Firestore gọi nó là bản đồ). Các tài liệu lần lượt được nhóm thành các bộ sưu tập.

Firebase là gì? Các đặt điểm của Firebase - Ảnh 16.

Firestore database có thể bao gồm nhiều collections có thể chứa các tài liệu hướng tới các sub-collections. Các sub-collections này lại có thể chứa các tài liệu trỏ đến các sub-collections,...

Firebase là gì? Các đặt điểm của Firebase - Ảnh 17.

Bạn có thể xây dựng hệ thống phân cấp để lưu trữ dữ liệu liên quan và dễ dàng truy xuất bất kỳ dữ liệu nào bạn cần bằng truy vấn. Tất cả các truy vấn có thể mở rộng với kích thước của tập hợp kết quả, do đó ứng dụng đã sẵn sàng chia tỷ lệ ngay từ đầu.

Các truy vấn của Firestore khá "shallow". Có nghĩa là trong Firestore, bạn chỉ có thể lấy bất kỳ tài liệu nào mà bạn muốn mà không phải lấy tất cả dữ liệu được chứa trong bất kỳ linked sub-collections nào của nó.

Firebase là gì? Các đặt điểm của Firebase - Ảnh 18.

Query with Firestore

Hãy tưởng tượng rằng bạn đã tạo ra một collection trong Firestore có chứa một danh sách các thành phố. Vì vậy, trước khi bạn có thể gửi một truy vấn, bạn sẽ phải lưu trữ cơ sở dữ liệu bên trong một biến.

Firebase là gì? Các đặt điểm của Firebase - Ảnh 19.

Ở đây, citiesRef là biến chứa collection thành phố của bạn. Bây giờ, nếu bạn muốn tìm danh sách các thành phố thủ đô, bạn sẽ viết một truy vấn như sau:

Firebase là gì? Các đặt điểm của Firebase - Ảnh 20.

Dưới đây là một ví dụ khác về truy vấn trong Firestore. Giả sử bạn chỉ muốn xem 2 thành phố từ cơ sở dữ liệu của bạn có dân số trên 100.000.

Firebase là gì? Các đặt điểm của Firebase - Ảnh 21.

Nhưng Cloud Firestore có thể làm cho việc truy vấn dễ dàng hơn! Trong một số trường hợp, Cloud Firestore có thể tự động tìm kiếm cơ sở dữ liệu của bạn trên nhiều trường. Firestore sẽ hướng dẫn bạn hướng tới việc tự động xây dựng một chỉ mục giúp Firestore truy vấn cực kỳ đơn giản.

Firebase là gì? Các đặt điểm của Firebase - Ảnh 22.

Multi-Region Database

Trong Firestore, dữ liệu của bạn được tự động sao chép sang các vùng khác nhau. Vì vậy, nếu một trung tâm dữ liệu ngoại tuyến do một số lý do không lường trước được, bạn có thể chắc chắn rằng dữ liệu của ứng dụng của bạn vẫn an toàn ở một nơi khác.

Cơ sở dữ liệu đa vùng của Firestore cũng cung cấp sự nhất quán mạnh mẽ. Mọi thay đổi đối với dữ liệu của bạn sẽ được nhân đôi trên mọi bản sao của cơ sở dữ liệu.

Ưu, nhược điểm nổi bật của Firebase

1. Ưu điểm

  • Tiềm năng lưu trữ của Firebase là rất lớn.
  • Dễ dàng tích hợp và thiết lập nhanh chóng
  • Bảo mật do Firebase cung cấp là tiêu chuẩn cao nhất.
  • Sử dụng Firebase yêu cầu thiết lập tối thiểu nhất.
  • Truy cập tệp, dữ liệu, xác thực nhanh chóng và dễ dàng.
  • Không cần cơ sở hạ tầng máy chủ để cung cấp dữ liệu cho các ứng dụng.
  • Do sự hiện diện của bộ lưu trữ JSON, không có rào cản nào giữa dữ liệu và các đối tượng.
  • Tất cả thông tin kỹ thuật, API và tài nguyên SDK đều có trên nền tảng này. Ngoài ra, các thông tin và tin tức mới nhất đều có trên các mạng xã hội của nó.
  • Làm việc với Firebase dễ dàng đến mức những người có kiến thức tối thiểu về ngôn ngữ lập trình có thể tích hợp các công cụ khác với Firebase bằng giao diện người dùng Firebase.
  • Lưu trữ Firebase có mạng phân phối nội dung (CDN) với nền tảng Google Cloud.
  • Cơ sở dữ liệu thời gian thực có sẵn tiên tiến nhất
  • Cộng đồng đang phát triển mạnh mẽ
  • Miễn phí cho người mới bắt đầu.

2. Nhược điểm

  • Khả năng truy vấn hạn chế
  • Firebase không phải mã nguồn mở
  • Không hoạt động ở một số quốc gia không cho phép Google
  • Nền tảng BaaS nói chung có một vấn đề phụ thuộc vào đám mây. Không thể chuyển dữ liệu từ nó sang một nền tảng khác.
  • Mặc dù Firebase có tính năng đa nền tảng, nhưng nó tập trung nhiều hơn vào hệ điều hành Android ở phần di động và không hỗ trợ các ứng dụng iOS.
  • Không phải các dịch vụ đều được cung cấp miễn phí, và giá trả phí khá cao.
  • Firebase không cung cấp API GraphQ

Các ứng dụng phổ biến sử dụng Firebase

Firebase cung cấp tích hợp liền mạch trên Android, iOS, Unity và web. Nó cũng cung cấp tài liệu chi tiết đầy đủ và nhiều bộ công cụ phát triển phần mềm để vận chuyển các ứng dụng một cách dễ dàng. Đây là lý do tại sao nó được sử dụng trong nhiều ứng dụng di động mà chúng ta sử dụng ngày nay. Dưới đây là một số ứng dụng hàng đầu được xây dựng bằng Firebase:

  • Twitch.tv
  • 9gag
  • Trustpilot
  • Duolingo
  • Wattpad
  • Alibaba
  • Lyft
  • Thời báo New York
  • Trivago

...

Theo Bizfly Cloud chia sẻ

>>> Xem thêm: So sánh Firebase và Firestore có những điểm gì khác nhau

TAGS: firebase
SHARE