Hôm nay cafedev sẽ giới thiệu mọi thứ về Fireabse cho ae developer nắm rõ về nó. Từ đó có thể áp dụng một số tính năng hữu ích của nó cho bản thân mình.

Đây là một bài viết ngắn gọn về tất cả những mà Firebase có thể làm được.

Với một loạt các công nghệ phía máy chủ đang có mặt trên thị trường hiện nay, các developer có một công việc khó khăn để quyết định loại nào phù hợp nhất cho ứng dụng của họ.

Trong bài này, chúng ta sẽ khám phá một trong những lựa chọn có tên là Firebase và tất cả các công cụ và dịch vụ mà nó cung cấp.

1. Firebase là gì?

Firebase là một nền tảng phát triển ứng dụng di động và web cung cấp cho các developer rất nhiều công cụ và dịch vụ để 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 thêm lợi nhuận.

Lịch sử tóm tắt

Trở lại năm 2011, trước khi Firebase là Firebase, đó là một startup có tên Envolve. Như Envolve, nó đã cung cấp cho các developer một API cho phép tích hợp chức năng trò chuyện trực tuyến vào trang web của họ.

Điều thú vị ở đây là mọi người đã sử dụng Envolve để truyền dữ liệu ứng dụng không chỉ là tin nhắn trò chuyện. Các developer đã sử dụng Envolve để đồng bộ dữ liệu ứng dụng như trạng thái trò chơi trong thời gian thực trên người dùng của họ.

Điều này đã khiến những người sáng lập Envolve, James TamplinAndrew Lee, tách biệt hệ thống trò chuyện và kiến ​​trúc thời gian thực. Vào tháng 4 năm 2012, Firebase được thành lập như một công ty riêng biệt cung cấp dịch vụ Backend-as-a-Service với chức năng thời gian thực.

Sau khi được Google mua lại vào năm 2014, Firebase đã nhanh chóng phát triển thành một mạng lưới đa chức năng cho một nền tảng di động và web như ngày nay.

2. Dịch vụ vs tính năng của Firebase

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

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

Phát triển và thu hút user của bạn

3. Chi tiết về Firebase

Realtime Database

Cơ sở dữ liệu thời gian thực Firebase là cơ sở dữ liệu NoQuery được lưu trữ trên đám mây cho phép bạn lưu trữ và đồng bộ hóa giữa những người dùng của bạn trong thời gian thực.

Cơ sở dữ liệu thời gian thực thực sự chỉ là một đối tượng JSON lớn mà các developer có thể quản lý trong thời gian thực.

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

Đồng bộ hóa thời gian thực giúp người dùng của bạn 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 di động. Cơ sở dữ liệu thời gian thực cũng giúp người dùng của bạn hợp tác, trao đổi với nhau.

Một lợi ích đáng kinh ngạc khác của Cơ sở dữ liệu thời gian thực là nó cung cấp SDK di động và web, cho phép bạn xây dựng ứng dụng của mình mà không cần máy chủ.

Khi người dùng của bạn ngoại tuyến, SDK cơ sở dữ liệu thời gian thực sử dụng bộ đệm cục bộ trên thiết bị để phục vụ và lưu trữ các thay đổi. Khi thiết bị trực tuyến, dữ liệu local sẽ được tự động đồng bộ hóa.

Cơ sở dữ liệu thời gian thực 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

Xác thực Firebase cung cấp dịch vụ backend, SDK dễ sử dụng và thư viện UI được tạo sẵn để xác thực người dùng với ứng dụng của bạn.

Thông thường, bạn sẽ mất vài tháng để thiết lập hệ thống xác thực của riêng bạn. Và thậm chí sau đó, bạn sẽ cần phải giữ một đội ngũ chuyên dụng để duy trì hệ thống đó. Nhưng nếu bạn sử dụng Firebase, bạn có thể thiết lập toàn bộ hệ thống dưới 10 dòng mã sẽ xử lý mọi thứ cho bạn, bao gồm 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 bạn thông qua các phương pháp sau:

  • Email & Password
  • Số điện thoại
  • Google
  • Facebook
  • Twitter
  • & hơn nữa!

Sử dụng Xác thực Firebase giúp xây dựng các hệ thống xác thực an toàn và dễ dàng hơn, đồng thời cải thiện trải nghiệm đăng nhập cho người dùng.

Firebase Authentication được xây dựng bởi cùng những người đã tạo Đăng nhập Google, Smart Lock và Trình quản lý mật khẩu Chrome.

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 tạo các message bằng các phân đoạn được xác định trước hoặc tạo riêng, sử dụng nhân khẩu học và hành vi để tạo tin nhắn. Bạn có thể gửi tin nhắn đến một nhóm thiết bị được đăng ký theo các chủ đề cụ thể hoặc bạn có thể nhận được một đối tượng như một thiết bị duy nhất nào đó.

FCM có thể gửi tin nhắn ngay lập tức hoặc tại một thời điểm trong 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ư cài đặt mức độ ưu tiên, âm thanh và ngày hết hạn và cũng theo dõi các sự kiện tùy chỉnh.

Điều tốt nhất về FCM là hầu như không có mã hóa nào liên quan! FCM được tích hợp hoàn toàn với Firebase Analytics, cung cấp cho bạn chi tiết theo dõi tương tác và theo dõi truyền dữ liệu.

Bạn cũng có thể sử dụng Test A / B để thử các phiên bản khác nhau của tin nhắn thông báo và sau đó chọn phiên bản hoạt động tốt nhất so với mục tiêu của bạn.

Firebase Database Query

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

Firebase có 4 chức năng lọc:

  • orderByKey()
  • orderByChild(‘child’)
  • orderByValue()
  • orderByPriority()

Lưu ý rằng bạn sẽ chỉ nhận 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 của truy vấn bao gồm hai bước. Đầu tiên, bạn chọn các cột từ bảng của bạn. Ở đây tôi đang 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 mình bằng mệnh đề WHERE. Từ truy vấn được cung cấp bên dưới, tôi sẽ nhận được một danh sách Users có tên là Cafedev.vn.

SELECT * FROM Users where Name === "Cafedev.vn"

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

SELECT * FROM Users LIMIT 10

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 chức năng order. Tùy chọn, bạn cũng có thể nối thêm chức năng truy vấn để hạn chế nâng cao hơn.

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 để tải lên nội dung do người dùng tạo 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 quy mô ứ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 của mạng.

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

Firebase Test Labs

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

Phòng thí nghiệm kiểm tra Firebase đi kèm với 3 chế độ thử nghiệm:

Instrumentation Test(Kiểm tra đo đạt)

Đây là những bài kiểm tra mà bạn đã viết riêng để kiểm tra ứng dụng của mình, sử dụng các khung như Espresso và UI Automator 2.0

Robo Test

Test này dành cho những người chỉ muốn thư giãn và để Firebase lo lắng về các bài kiểm tra. Phòng thí nghiệm kiểm tra Firebase có thể mô phỏng cảm ứng của người dùng và xem từng thành phần của chức năng ứng dụng.

Game Loop Test

Test Labs hỗ trợ thử nghiệm ứng dụng trò chơi. Nó đi kèm với một hỗ trợ beta để sử dụng chế độ demo của Chế độ bản đồ, nơi ứng dụng trò chơi chạy trong khi mô phỏng hành động của người chơi.

Remote Config

Cấu hình từ xa về cơ bản cho phép chúng tôi xuất bản cập nhật cho người dùng của chúng tôi ngay lập tức. Cho dù chúng tôi 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 của chúng tôi hoặc hiển thị các 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ách sử dụng các tham số phía máy chủ mà không cần phải xuất bản phiên bản mới.

Remote Config cho chúng ta sức mạnh để:

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

Firebase App Indexing

Để nội dung app của bạn được Google đánh index, hãy sử dụng cùng một URL trong ứng dụng 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. Tìm kiếm của Google thu thập 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 của bạn trên thiết bị của họ sẽ truy cập trực tiếp vào nội dung trong ứng dụng của bạn 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.

Firebase hiện có thể sửa đổi các 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.

Dưới đây là 3 cách sử dụng cơ bản cho Dynamic Link

  • Chuyển đổi người dùng web trong di động thành người dùng ứng dụng Native.
  • Tăng chuyển đổi để chia sẻ giữa người dùng với người dùng. 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 những 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ọ tin nhắn chào cá nhân nào đó.
  • Ổ đĩa cài đặt từ bên thứ ba. Bạn có thể sử dụng các mạng truyền thông xã hội, email và SMS có thể được sử dụng để tăng đối tượng người dùng của bạn. Khi người dùng cài đặt ứng dụng, họ có thể thấy nội dung chính xác của các chiến dịch nào đó của bạn.

Firestore

Cloud Firestore là một cơ sở dữ liệu tài liệu NoQuery 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 của bạn – ở quy mô toàn cầu.

Mặc dù điều này nghe có vẻ giống với Realtime Database. Firestore mang đến nhiều điều mới cho nền tảng này và biến nó thành một thứ hoàn toàn khác với Realtime Database như sau:

Cải thiện Querying and Data Structure

Khi Realtime Database lưu trữ dữ liệu dưới dạng cây JSON khổng lồ, Cloud Firestore có cách tiếp cận có cấu trúc hơn. Firestore giữ dữ liệu của nó bên trong các đối tượng được gọi là documents. Các documents này bao gồm các cặp khóa-giá trị và có thể chứa bất kỳ loại dữ liệu nào, từ chuỗi đến dữ liệu nhị phân đến các đối tượng giống với cây JSON (Firestore gọi nó là bản đồ). Các documents, lần lượt, được nhóm thành các collections.

Cơ sở dữ liệu Firestore có thể bao gồm nhiều collections có thể chứa các documents hướng tới các collections phụ. Các collections phụ này một lần nữa có thể chứa các documents trỏ đến các collections phụ khác, v.v.

Bạn có thể xây dựng cấu trúc 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 cách sử dụng truy vấn. Tất cả các truy vấn có thể mở rộng theo kích thước của tập kết quả của bạn, vì vậy ứng dụng của bạn đã sẵn sàng mở rộng ngay từ đầu.

Các truy vấn của Firestore là đơn giản. Bằng cách này, tôi muốn nói rằng trong Firestore, bạn chỉ cần lấy bất kỳ document nào bạn muốn mà không phải tìm tất cả dữ liệu có trong bất kỳ collections phụ nào được liên kết tới nó.

Query with Firestore

Hãy tưởng tượng rằng bạn đã tạo một collections trong Firestore có chứa danh sách 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.

Var webForDeveloper = db.collection('cafedev.vn')

Ở đây, thành phố là biến đó chứa collections các 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ư thế này:

Var query = webForDeveloper.where('cafedev.vn', "==", true)

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

webForDeveloper.where("topRank",">", 10000).orderBy("topRank").limit(2)

Nhưng Cloud Firestore có thể khiến việc truy vấn trở nê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 tự động xây dựng một chỉ mục giúp Firestore thực hiện truy vấn cực kỳ đơn giản.

Khả năng mở rộng tốt hơn

Mặc dù Realtime Database Firebase, có khả năng mở rộng, mọi thứ sẽ bắt đầu trở nên điên rồ khi ứng dụng của bạn trở nên thực sự phổ biến hoặc nếu cơ sở dữ liệu của bạn trở nên thực sự lớn.

Cloud Firestore dựa trên cơ sở hạ tầng Đám mây của Google. Điều này cho phép nó mở rộng quy mô dễ dàng hơn và có dung lượng lớn hơn Realtime Database.

Cơ sở dữ liệu đa vùng

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 ứ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 Firestore cũng cung cấp tính 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ơ sở dữ liệu của bạn.

Định giá các Model khác nhau

Cơ sở dữ liệu thời gian thực tính phí người dùng dựa trên lượng dữ liệu bạn đã lưu trữ trong cơ sở dữ liệu.

Cloud Firestore cũng tính phí cho bạn như vậy, nhưng chi phí thấp hơn đáng kể so với Realtime Database. và thay vì dựa trên chi phí cho lượng dữ liệu được lưu trữ, giá của Firestore được điều khiển bởi số lần đọc / ghi mà bạn thực hiện.

Một số bài viết hay bạn có thể đọc thêm để biết thêm về Cloud Firestore:

Cloud Firestore for Realtime Database Developers

Bạn cũng có thể xem qua codelab này để hiểu rõ hơn về cách hoạt động của Cloud Firestore:

Cloud Firestore Web Codelab

3. Cập nhật mới nhất trong Firebase

Robo Scripts

Firebase Test Labs Firebase có dịch vụ tuyệt vời này có tên Robo Test cho phép chúng tôi kiểm tra ứng dụng của mình bằng cách viết bất kỳ tập lệnh kiểm tra nào. Với Robo Test, bạn có thể kiểm tra ứng dụng Firebase hoàn toàn, thậm chí điền vào các trường mẫu cụ thể và các nút ấn!

Bây giờ Firebase đã đưa ra một tính năng thử nghiệm thú vị khác gọi là Robo Script. Với Robo ScScript, bạn có thể ghi lại một loạt các hành động để Firebase thực hiện trong ứng dụng của bạn.

Khi bạn chạy Robo Test với Robo Script được đính kèm, Firebase trước tiên sẽ thực hiện các hành động được ghi lại của bạn từ Robo Script. và sau đó khám phá ứng dụng như bình thường.

Firebase Predictions(Dự đoán)

Firebase hiện đi kèm với học máy(machine learning), với nó được sử dụng để phân tích dữ liệu ứng dụng của bạn và tạo các nhóm người dùng động dựa trên hành vi dự đoán của người dùng.

Dự đoán Firebase có thể hoạt động với Remote Config để tăng chuyển đổi bằng cách cung cấp trải nghiệm tùy chỉnh dựa trên từng hành vi người dùng của bạn.

Hoặc, nó có thể làm việc với Thông báo để gửi đúng thông điệp đến đúng nhóm người dùng.

Dự đoán Firebase cũng có thể kết hợp với Test A / B để đánh giá hiệu quả của các chiến lược dựa trên dự đoán của bạn.

Firebase Distribution

Các công ty phát triển lớn có thể đủ khả năng viết code để thực hiện vô số nhiệm vụ nhỏ như tự lấy file cài và chuyển giao cho tester or tự release .v.v… Đây là ý tưởng đằng sau phần mở rộng này của Firebase(Firebase Distribution). Thay vì dành thời gian để viết mã cho các hoạt động phổ biến này, thì bạn có thể sử dụng Firebase Distribution là một bộ tiện ích mở rộng được đóng gói sẵn do Firebase phát triển.

Bạn có thể tham khảo thêm tại đây.

Bài khá dài nhưng chi tiết và đầy đủ, huy vọng nó hữu ích và các bạn thích nó. Hãy comments và cho chúng tôi biết suy nghỉ của bạn về Firebase hay bất cứ đều gì về nó?

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!