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é.
Nội dung chính của bài viết
#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õ.
#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).
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. 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
- 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ý.
>> 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
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?
Và 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:
- Sử dụng Firebase để tạo ứng dụng Car Location Tracking cho Android
- Cách xác thực số điện thoại bằng Firebase
- Theo dõi khoảng cách xe với Firebase
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é!
SELECT * FROM Users WHERE name === “GeekyAnts” LIMIT 10;
LITMIT có thực sự tồn tại trong SQL?
Mình không hiểu ý bạn lắm.
Nhưng nếu mình hiểu không nhầm thì ý bạn là lệnh LIMIT có được hỗ trợ bởi SQL không á?
Đúng vậy, mình chưa thấy SQL hỗ trợ Limit, hay bạn nhầm qua MySQL?
Firebase có hỗ trợ câu lệnh Limit mà bạn
À thôi bỏ qua đi bạn. Mình đang nói Limit ko hỗ trợ trong MS SQL, chứ ko nói ko hỗ trợ trong Firebase. Chỉ là hiểu nhầm ý nhau thôi. Dù sao cũng cám ơn bạn 1 bài viết hữu ích.
Bài viết hay mình cố gắng để xử lý cho trang của mình