Firebase là gì? Ưu điểm và nhược điểm của Firebase
Trong bài này chúng ta sẽ thảo luận khái niệm Firebase là gì? Qua đó sẽ giúp bạn hiểu được những ưu điểm và nhược điểm của Firebase.
Nếu bạn là một lập trình viên hay đơn giản chỉ là một người yêu công nghệ và hay đọc các tin tức trên điện thoại hoặc máy tính thì Firebase có thể là một cụm từ được trông thấy khá nhiều. Vậy Firebase là gì? Firebase có những ưu điểm và hạn chế nào? Hãy cùng tìm hiểu rõ hơn nhé!
1. Firebase là gì?
Theo Wikipedia, Firebase là một nền tảng do Google phát triển để tạo các ứng dụng web và di động và hoạt động trên nền tảng đám mây. Nó giúp các lập trình phát triển nhanh các ứng dụng di động bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu.
2. Lịch sử phát triển của Firebase
Firebase phát triển từ Envolve, một công ty khởi nghiệp trước đó do James Tamplin và Andrew Lee thành lập vào năm 2011. Họ thành lập Firebase như một công ty vào tháng 9 – 2011. Đến tháng 4 năm 2012 Firebase đã lần đầu tiên được ra mắt công chúng.
Bài viết này được đăng tại [free tuts .net]
Sản phẩm đầu tiên của Firebase là Cơ sở dữ liệu thời gian thực (Firebase realtime database), một API đồng bộ hóa dữ liệu ứng dụng trên các thiết bị iOS, Android và Web, đồng thời lưu trữ trên đám mây của Firebase. Sản phẩm hỗ trợ các nhà phát triển phần mềm trong việc xây dựng các ứng dụng cộng tác, theo thời gian thực.
Vào tháng 10 năm 2014, Firebase đã được Google mua lại. Từ đó đến nay, Firebase đã ra mắt thêm nhiều tính năng mới và được nhiều nhà phát triển ưa thích sử dụng trong các dự án của mình.
3. Chức năng chính 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). 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é!
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.. Realtime Database hỗ trợ cho nền tảng Android, IOS, Web, C++, Xamarin, Unity. Bên cạnh đó, người dùng còn dễ dàng lấy dữ liệu từ server một cách dễ dàng
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. Đây là dịch vụ quản lý người sử dụng đơn giản, độ bảo mật cao. Dịch vụ cung cấp nhiều cách thức xác thực email, mật khẩu.
Cloud Messaging: 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.
Firebase Database Query: 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. Firebase database query giúp đơn giản hóa quá trình này.
Remote Config: Là dịch vụ tùy chỉnh cách ứng dụng khi hiển thị cho mỗi người dùng. Nó được dùng để thay đổi giao diện, triển khai dần dần các tính năng, chạy thử nghiệm A/B, cung cấp nội dung tùy chỉnh cho người dùng hoặc thực hiện các cập nhật khác mà không cần triển khai phiên bản mới nhất từ bảng điều khiển.
Firebase Dynamic Links: Được áp dụng trên Android, IOS và Web, dịch vụ này sử dụng liên kết động để cung cấp trải nghiệm người dùng, hỗ trợ web di động thúc đẩy chuyển đổi ứng dụng gốc, người dùng chia sẻ người dùng, các chiến dịch xã hội và tiếp thị…
4. Những tính năng chính của Firebase
Firebase hiện nay bao gồm các hoạt động như:
Firebase Realtime Database
Dữ liệu được lưu trữ dưới dạng cây Json, và được đồng bộ theo thời gian thực đối với mọi kết nối.
Khi bạn xây dựng những ứng dụng đa nền tảng như Android, IOS và Web App, tất cả các client của bạn sẽ kết nối trên cùng một cơ sở dữ liệu Firebase và tự động cập nhật dữ liệu mới nhất khi có sự thay đổi. Cả một cơ sở dữ liệu là một cây json lớn, với độ trễ thấp, Firebase realtime database cho phép bạn xây dựng các ứng dụng cần độ realtime như app chat, hay game online…
Firebase Authentication:
Là chức năng xác thực người dùng.Hiểu một cách đơn giản, app của bạn cần phải đăng nhập/ đăng ký tài khoản để sử dụng, Firebase cung cấp cho chúng ta chức năng xác thực người dùng bằng email, số điện thoại, hay tài khoản Facebook, Google,…Firebase Authentication giúp thực hiện việc đó một cách dễ dàng, giúp người dùng nhanh chóng tiếp cận sản phẩm hơn. Vì thế, nó là một chức năng vô cùng hữu ích của firebase.
Firebase Hosting
Hỗ trợ các nhà phát triển tạo lập ứng dụng một cách đơn giản hơn so với việc tự tạo hay thuê server thực mà vẫn đảm bảo độ chính xác và an toàn về thông tin.
5. Ưu và nhược điểm của Firebase
Ưu điểm:
- Xây dựng ứng dụng nhanh chóng mà không tốn thời gian, nhân lực để quản lý hệ thống và cơ sở hạ tầng phía sau: Firebase cung cấp cho bạn chức năng như phân tích, cơ sở dữ liệu, báo cáo hoạt động và báo cáo các sự cố lỗi để bạn có thể dễ dàng phát triển, định hướng ứng dụng của mình vào người sử dụng nhằm đem lại các trải nghiệm tốt nhất cho họ.
- Uy tín chất lượng đảm bảo từ Google: Firebase được google hỗ trợ và cung cấp trên nền tảng phần cứng với quy mô rộng khắp thế giới, được các tập đoàn lớn và các ứng dụng với triệu lượt sử dụng từ người dùng.
- Quản lý cấu hình và trải nghiệm các ứng dụng của Firebase tập trung trong một giao diện website đơn giản, các ứng dụng này hoạt động độc lập nhưng liên kết dữ liệu phân tích chặt chẽ.
Nhược điểm:
- Không thể sử dụng Firebase như một mã nguồn mở để phát triển ứng dụng di động.
- Chỉ hoạt động với Cơ sở dữ liệu NoSQL: Firebase sử dụng Json và hầu như không có tính năng SQL mặc dù đã có những cải tiến đáng kể trên Cloud. Tuy nhiên, cơ sở dữ liệu của Firebase vẫn không thể sử dụng cơ sở dữ liệu quan hệ.
- Firebase khá đắt và giá không ổn định: Giá thành của các tính năng sử dụng trên Firebase khá đắt, việc tính giá tiền dựa trên mức độ sử dụng khiến việc giới hạn giá cả trở nên không rõ ràng và không thể dự đoán trước chi phí bỏ ra khi sử dụng Firebase.
- Cơ sở dữ liệu của họ được tổ chức theo kiểu trees, parent-children, không phải là kiểu Table nên những ai đang quen với SQL có thể sẽ gặp khó khăn từ mức đôi chút tới khá nhiều.
6. Tích hợp Firebase vào project ứng dụng
Firebase là một nền tảng khá toàn diện và linh hoạt. Nó cho phép người dùng phát triển các loại ứng dụng sau:
- iOS.
- Android.
- Web.
Tích hợp Firebase vào Project Android, iOS và Web, cần trải qua các step sau:
Bước 1: Truy cập vào địa chỉ https://console.firebase.google.com/ hoặc https://console.firebase.google.com/?hl=ja và Login với tài khoản Google.
Bước 2: Create new project
Bước 3: Xem các thông số config: Chọn Project Settings
Bước 4: Setting và tích hợp vào Android và iOS
Với bản Android cần thêm các tham số sau :
Với bản iOS cần thêm các tham số:
7. Những ứng dụng phổ biến sử dụng Firebase
Dưới đây, tôi sẽ liệt kê một số ứng dụng phổ biến sử dụng Firebase:
- Thời báo New York.
- Alibaba.
- Todoist.
- eBay Motors.
- Le figaro.
- …..
8. Những giải pháp thay thế Firebase
Back4App: là một nền tảng mã nguồn mở, hoạt động như một Low-Code Backend trong việc hỗ trợ phát triển ứng dụng, nó cũng cung cấp nhiều tính năng lưu trữ và quản lý ứng dụng một cách dễ dàng.
Backendless: Cung cấp nhiều công cụ quản lý các tùy chọn về máy chủ đám mây, nâng cao tốc độ ứng dụng nhờ sự phát triển của bộ nhớ đệm.
AWS Amplify: là giải pháp được ưu tiên cho các dự án phát triển di động và Front-End. Dựa vào các thông số, theo dõi số liệu. nó có khả năng phân tích và cải thiện mức độ tương tác của người dùng.
Kinvey: nó không cần sử dụng hệ thống máy chủ để phát triển ứng dụng mà chỉ cần thông qua Cloud Backend và SDK. Điều đặc biệt là Kinvey cung cấp tính năng chia sẻ mã cho các ứng dụng đa nền tảng.
9. Giá dịch vụ Firebase
Firebase cung cấp gói dịch vụ miễn phí và dựa trên mức sử dụng cho người dùng. Nó cũng có gói trả phí nhưng không có giá cố định và thống nhất
10. Có nên dùng cho các ứng dụng lớn?
Từ những thông tin bên trên, chắc hẳn bạn cũng đã có đáp án cho câu hỏi này rồi đúng không?
Chúng ta hãy xem xét trường hợp sau đây:
- Bạn đang cần viết ứng dụng e-commerce và sử dụng Firebase lưu data, trong ứng dụng có tính năng WishList.
- User sẽ được phép thêm rất nhiều sản phẩm vào wishlist của họ, miễn là chúng không trùng nhau.
- Liệu bạn sẽ xây dựng cấu trúc lưu trữ trong Firebase ra sao để tính năng này work tốt nhất có thể.
Firebase có đáp ứng được các trường hợp bên trên hay chưa?Thật ra là cũng có, nhưng nó là 1 phần của hệ thống chứ không phải tất cả. Bạn có thể áp dụng Firebase vào một phần của ứng dụng nếu phù hợp. Ví dụ như app bán hàng có thể dùng Firebase cho phần chat với chủ cửa hàng, cập nhật trạng thái đơn hàng realtime chẳng hạn.
Firebase là một nền tảng cung cấp rất nhiều những dịch vụ tiện ích để phát triển ứng dụng app, web, mobile,… Hy vọng bài viết này đã cung cấp những thông tin hữu ích cho bạn về firebase, hẹn gặp lại các bạn lần sau!