Tìm hiểu Firebase - Phần 2

Các tính năng chính (tiếp)

Firebase Database Query

Firebase có cơ chế giúp nhận được dữ liệu xác định thông qua các truy vấn. Truy vấn được tạo bởi một hoặc nhiều phương thức lọc nối thành chuỗi.

Firebase có 4 phương thức sắp xếp:

  1. orderByKey()
  2. orderByChild('child')
  3. orderByValue()
  4. orderByPriority()

Chú ý là 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 những truy vấn nâng cao sau để giới hạn dữ liệu tốt hơn:

  1. startAt('value')
  2. endAt('value')
  3. equalTo('child_key')
  4. limitToFirst(number)
  5. limitToLast(number)

Trong SQL, một truy vấn cơ bản gồm 2 bước. Đầu tiên, bạn chọn các cột trong bảng. Ở đây, tôi đang chọn tất cả các cột của bảng Users. Tiếp theo, bạn có thể áp dụng giới hạn cho truy vấn bằng câu lệnh WHERE. Trong truy vấn phía dưới, tôi sẽ lấy danh sách nhưng người dùng có tên là GeekyAnts.

Bạn cũng có thể áp dụng câu lệnh LIMIT để giới hạn số lượng kết quả sẽ nhận được từ truy vấn

Trong Firebase, truy vấn cũng có 2 bước. Đầu tiên, bạn tạo một tham chiếu tới khóa cha và sau đó sử dụng một phương thức sắp xếp. Bạn cũng có thể sử dụng thêm các phương thức truy vấn để nâng cao khả năng giới hạn.

Firebase Storage

Firebase Storage là giải pháp độc lập cho việc lưu trữ nội dung do người dùng tải lên như hình ảnh và video từ iOS, Anroid hay Web.

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

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

Remote Config

Remote Config cho phép chúng ta thực hiện chỉnh sửa tới người dùng cuối ngay lập tức. Nếu chúng ta muốn thay đổi màu cho màn hình, hoặc bố cục cho một phần xác định, hoặc 1 tùy chỉnh thay đổi định kỳ - điều này hoàn toàn có thể làm được sử dụng tham số phía server mà không cần phát hành 1 phiên bản mới.

Remote Config cho chúng ta quyền để:

  • Cập nhật ứng dụng nhanh chóng và dễ dàng mà không cần phát hành một phiên bản mới trên kho ứng dụng
  • Dễ dàng thiết lập hành vi cho ứng dụng theo từng phân khúc dựa trên người dùng hoặc thiết bị đang sử dụng nó

Firebase App Indexing

Để nội dung trong ứng dụng của bạn được đánh chỉ mục bởi Google, ứng dụng nên sử dụng cùng URLs với trang web để xác nhận rằng cả ứng dụng và trang web đó đều là của bạn. Google Search sẽ thu thập các liên kết trên website của bạn và đưa chúng vào kết quả tìm kiếm. Sau đó, những người dùng đã cài đặt ứng dụng của bạn sẽ được dẫn trực tiếp đến nội dung trong ứng dụng khi họ click vào 1 liên kết.

Firebase Dynamic Links

Liên kết sâu là liên kết đưa bạn đến với một nội dung. Phần lớn liên kết trong trang web là các liên kết sâu.

Giờ đây Firebase có thể chỉnh sửa các liên kết sâu đó thành các liên kết động! Các liên kết động cho phép người dùng tới 1 vị trí xác định trong ứng dụng của bạn.

Có 3 ứng dụng cơ bản của liên kết động:

  1. Chuyển đổi người dùng web di động thành ứng dụng di động

  1. Tăng sự chuyển đổi cho chia sẻ giữa những người dùng. Bằng việc chuyển đổi người dùng trong ứng dụng, bạn có thể bỏ qua các tin nhắn chung chung. Thay vào đó là một tin nhắn được cá nhân hóa.

  1. Điều khiển việc cài đặt từ bên thứ ba. Bạn có thể sử dụng các nền tảng mạng xã hội, email và SMS để tăng các khách hàng mục tiêu. Khi người dùng cài đặt app, họ có thể nhìn thấy chính xác nội dung trong chiến dịch của bạn

Cloud Firestore

Cloud Firestore là một cơ sở dữ liệu văn bản NoSQL 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 - trên phạm vi toàn cầu.

Mặc dù nghe có vẻ giống Realtime Database nhưng Firestore mang đến rất nhiều thứ mới, làm cho nó trở thành 1 thứ gì đó khác hoàn toàn.

Cải thiện truy vấn và cấu trúc dữ liệu

Trong khi Realtime Database lưu trữ dữ liệu trong dạng một cây JSON khổng lồ. Cloud Firestore mang một tiếp cận có cấu trúc hơn nhiều. Firestore lưu trữ dữ liệu trong các đối tượng được gọi là các document. Các đối tượng này bao gồm các cặp key - value và có thể bao gồm bất kì loại dữ liệu nào, từ string tới dữ liệu nhị phân, thậm chí là các đối tượng giống như các cây JSON (Firestore gọi là các map). Các document này lần lượt được nhóm trong các collection.

Cơ sở dữ liệu Firestore có thể bao gồm nhiều collection, các collection có thể bao gồm nhiều document, các document này lại có thể trỏ đến các collection con, cứ tiếp tục như vậy

Bạn có thể xây dựng cấu trúc phân cấp để lưu trữ các dữ liệu liên quan và có thể dễ dang lấy được 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ể đáp ứng theo kích thước tập hợp kết quả, do đó ứng dụng của bạn luôn sắn sàng mở rộng từ ngày đầu tiên.

Truy vấn trong Firestore là nông. Điều đó có nghĩa là trong Firebase, bạn có thể dễ dàng lấy bất kỳ document nào bạn muốn mà không phải lấy tất cả dữ liệu chứa trong các collection con liên kết với nó.

Truy vấn với Firestore

Hãy tưởng tượng bạn đã tạo 1 collection trong Firestore chứa 1 danh sách các thành phố. Trước khi có thể tạo 1 truy vấn, bạn cần phải lưu cơ sở dữ liệu vào trong 1 biến.

Ở đây, citiesRef là biến chứa collection 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 truy vấn như sau:

1 ví dụ khác, nếu bạn muốn lấy 2 thành phố có dân số trên 100000:

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

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

Mặc dù Firebase's Realtime Database có khả năng để mở rộng, nhiều thứ sẽ bắt đầu phức tạp khi ứng dụng của bạn trở nên thật sự phổ biến hoặc cơ sở dữ liệu của bạn phình to ra.

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

Cơ sở dữ liệu đa khu vực

Trong Firestore, dữ liệu của bạn được tự động sao chép tới các khu vực khác nhau. Do đó, nếu 1 trung tâm dữ liệu không hoạt động vì 1 lý do không lường trước được, bạn có thể yên tâm là dữ diệu ứng dụng của bạn vẫn an toàn ở những nơi khác.

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

Mô hình định giá

Realtime Database tính phí dựa trên lượng dữ liệu bạn đã lưu trên cơ sở dữ liệu.

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

Firebase Predictions

Firebase giờ đã ứng dụng machine learning, 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 được tiên đoán của họ.

Firebase Predictions có thể kết hợp với Remote Config để tăng sự thân thiện bằng việc cung cấp 1 trải nghiệm tùy chỉnh với mỗi người dùng dựa trên hành vi của người đó.

Hoặc kết hợp với bộ soạn thảo thông báo để gửi đúng tin nhắn đến đúng nhóm người dùng

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

Tham khảo

Introduction to Firebase🔥