FirebaseFirestore là một cơ sở dữ liệu NoSQL trong hệ sinh thái Firebase của Google, đượcthiết kế để hỗ trợ việc lưu trữ và truy xuất dữ liệu một cách linh hoạt, đồng thời cungcấp tính n
GIỚI THIỆU ĐỀ TÀI
Đặt vấn đề
Trong quá trình quản lý thông tin sinh viên, việc sử dụng cơ sở dữ liệu để lưu trữ và truy xuất thông tin là rất quan trọng Tuy nhiên, việc xây dựng và triển khai một hệ thống quản lý cơ sở dữ liệu đòi hỏi sự đầu tư về cơ sở hạ tầng và kỹ thuật Đồng thời, việc đảm bảo tính hiệu quả và tính nhất quán của dữ liệu cũng là một thách thức.
Giới thiệu đề tài
Trong đề tài này, chúng ta sẽ tập trung vào việc phát triển một ứng dụng quản lý thông tin sinh viên sử dụng Google Firebase Firestore trong thời gian thực Firebase Firestore là một cơ sở dữ liệu NoSQL trong hệ sinh thái Firebase của Google, được thiết kế để hỗ trợ việc lưu trữ và truy xuất dữ liệu một cách linh hoạt, đồng thời cung cấp tính năng đồng bộ dữ liệu thời gian thực. Ứng dụng quản lý thông tin sinh viên sẽ cho phép người dùng thêm, sửa đổi và xoá thông tin sinh viên, bao gồm các trường thông tin như tên, tuổi, giới tính, lớp học, và điểm số Dữ liệu sẽ được lưu trữ trên Firebase Firestore, đảm bảo tính nhất quán và khả năng truy xuất dữ liệu nhanh chóng.
Qua việc nghiên cứu và phát triển ứng dụng này, giúp hiểu rõ hơn về cách sử dụng Firebase Firestore để quản lý cơ sở dữ liệu trong thời gian thực và áp dụng vào việc quản lý thông tin sinh viên Chương tiếp theo sẽ giới thiệu về Firebase Firestore và các chức năng, tính năng của nó để xây dựng ứng dụng quản lý thông tin sinh viên.
NGHIÊN CỨU TOÀN DIỆN VỀ GOOGLE FIREBASE FIRESTORE
Giới thiệu về Google Firebase Firestore
1.1.1 Định nghĩa và khái niệm cơ bản về Firebase Firestor
Firebase Firestore là một cơ sở dữ liệu NoSQL được cung cấp bởi Google Firebase Nó là một phần của nền tảng Firebase và được thiết kế để lưu trữ và đồng bộ dữ liệu của ứng dụng di động, web và các nền tảng khác. Firestore sử dụng mô hình tài liệu - Document model để lưu trữ dữ liệu.
Dữ liệu được tổ chức thành các tài liệu nằm trong các Collections Mỗi dữ liệu là một tài liệu JSON, cho phép lưu trữ tài liệu phong phú và phân cấp Firestore cung cấp các API và SDK để phát triển các ứng dụng di động, web và máy chủ giúp cho việc quản lý và truy xuất dữ liệu trở nên dễ dàng và hiệu quả. 1.1.2 Các tính năng và lơi ích của Firebase Firestore Đồng bộ dữ liệu thời gian thực: Firebase Firestore cho phép đồng bộ dữ liệu ngay lập tức trên tất cả các thiết bị kết nối, giúp cập nhật dữ liệu một cách nhanh chóng và liên tục.
Tích hợp dễ dàng: Firestore tích hợp tốt với các dịch vụ khác của Firebase như Firebase Authentication, Firebase Cloud Functions và Firebase Hosting, giúp việc phát triển và triển khai ứng dụng trở nên thuận tiện và nhanh chóng.
Truy vấn linh hoạt: Firestore cung cấp các truy vấn mạnh mẽ để truy xuất và lọc dữ liệu dựa trên các tiêu chí khác nhau, giúp tối ưu hóa hiệu suất và truy cập dữ liệu một cách linh hoạt.
Bảo mật và xác thực: Firestore cung cấp các cơ chế bảo mật và xác thực để kiểm soát quyền truy cập vào dữ liệu, bao gồm xác thực người dùng và quyền truy cập dựa trên vai trò.
Mở rộng và tin cậy: Firestore được xây dựng trên cơ sở hạ tầng đám mây của Google, cho phép mở rộng linh hoạt và đảm bảo tính tin cậy cao trong việc lưu trữ và quản lý dữ liệu.
Hỗ trợ làm việc ngoại tuyến: Firestore cho phép ứng dụng hoạt động và truy xuất dữ liệu một cách liên tục ngay cả khi không có kết nối mạng, và tự động đồng bộ dữ liệu khi kết nối trở lại.
Kiến trúc của Firebase Firestore
1.2.1 Cấu trúc dữ liệu và cách tổ chức dữ liệu trong Firestore
Firestore sử dụng mô hình tài liệu (document-based model) để tổ chức dữ liệu Dữ liệu trong Firestore được tổ chức thành các tài liệu (documents) và các tài liệu này được nhóm lại thành các bộ sưu tập (collections).
Tài liệu (Document): Là một bản ghi cơ bản trong Firestore Mỗi tài liệu được đại diện bằng một tài liệu duy nhất có một ID duy nhất Mỗi tài liệu chứa các cặp khóa-giá trị, trong đó mỗi khóa là một chuỗi duy nhất và mỗi giá trị có thể là một kiểu dữ liệu như chuỗi, số, boolean, đối tượng, mảng hoặc null.
Bộ sưu tập (Collection): Là một nhóm các tài liệu liên quan trong
Firestore Các tài liệu trong một bộ sưu tập không cần phải có cấu trúc dữ liệu giống nhau Mỗi bộ sưu tập được đặt tên theo ý muốn của người phát triển để phù hợp với loại dữ liệu hoặc mục đích của ứng dụng.
Firestore cho phép lồng các bộ sưu tập và tài liệu bên trong nhau để tạo ra cấu trúc dữ liệu phức tạp Ví dụ, một bộ sưu tập có thể chứa nhiều tài liệu, trong đó mỗi tài liệu có một trường chứa một bộ sưu tập khác.
1.2.2 Cơ chế lưu trữ và đồng bộ dữ liệu thời gian thực
Firestore sử dụng một cơ chế lưu trữ và đồng bộ dữ liệu thời gian thực để đảm bảo rằng các thay đổi dữ liệu được cập nhật và phản ánh trên tất cả các thiết bị kết nối.
Lưu trữ: Firestore lưu trữ dữ liệu trên cơ sở hạ tầng đám mây của
Google Dữ liệu được phân tán và sao lưu để đảm bảo tính toàn vẹn và tin cậy. Đồng bộ dữ liệu thời gian thực: Firestore sử dụng cơ chế đồng bộ dữ liệu thời gian thực để đảm bảo rằng các thay đổi dữ liệu được cập nhật một cách nhanh chóng và phản ánh trên tất cả các thiết bị kết nối Khi một ứng dụng thay đổi dữ liệu trên Firestore, dữ liệu được ghi vào bộ đệm trên thiết bị và sau đó được đồng bộ lên Firestore Cloud Firestore Cloud xử lý các thay đổi và phân phối chúng đến tất cả các thiết bị kết nối đang lắng nghe dữ liệu tương ứng Các thiết bị kết nối nhận các thông báo hoặc sự kiện về các thay đổi dữ liệu và ứng dụng có thể cập nhật giao diện người dùng hoặc thực hiện các hành động tương ứng.
Cơ chế lưu trữ và đồng bộ dữ liệu thời gian thực của Firestore giúp đảm bảo rằng dữ liệu trên tất cả các thiết bị được đồng bộ và cập nhật đồng nhất,mang lại trải nghiệm thời gian thực và đáng tin cậy cho người dùng.
Các chức năng và tính năng của Firease Firestore
Firebase Firestore cung cấp nhiều chức năng và tính năng mạnh mẽ để quản lý và làm việc với dữ liệu trong ứng dụng của bạn Dưới đây là một số chức năng và tính năng chính của Firestore:
Trong Firestore, có thể lưu trữ dữ liệu dưới dạng các tài liệu(documents), mỗi tài liệu được đại diện bởi một ID duy nhất và chứa các cặp khoá-giá trị Mỗi cặp khoá-giá trị bao gồm một tên trường
(field name) và giá trị tương ứng Bạn có thể lưu trữ các kiểu dữ liệu như chuỗi (string), số (number), boolean, mảng (array), tài liệu con (subdocument), và nhiều kiểu dữ liệu khác.
Các tài liệu được tổ chức vào các bộ sưu tập (collections) trong Firestore Mỗi bộ sưu tập đại diện cho một nhóm các tài liệu có cùng cấu trúc hoặc thuộc cùng một loại dữ liệu Bạn có thể thực hiện các thao tác CRUD (Create, Read, Update, Delete) trên các tài liệu và bộ sưu tập để quản lý dữ liệu trong Firestore.
Việc sử dụng cấu trúc tài liệu và bộ sưu tập trong Firestore mang lại tính linh hoạt và dễ dàng trong việc tổ chức và truy xuất dữ liệu theo nhu cầu của ứng dụng.
Truy vấn dựa trên giá trị trường (Field-based queries): Có thể tạo truy vấn để tìm kiếm dữ liệu dựa trên giá trị của một hoặc nhiều trường trong tài liệu Điều kiện lọc (Filtering): Firestore cho phép áp dụng các điều kiện lọc để giới hạn kết quả truy vấn dựa trên một hoặc nhiều điều kiện Sắp xếp kết quả (Sorting): Có thể sắp xếp kết quả truy vấn theo một hoặc nhiều trường dữ liệu.
Truy vấn phân trang (Pagination): Firestore hỗ trợ truy vấn phân trang, cho phép truy xuất dữ liệu một phần mỗi lần Điều này có thể hữu ích khi có một lượng lớn dữ liệu và muốn tải nhanh chóng các phần dữ liệu theo từng trang.
Truy vấn theo cấu trúc tài liệu con (Subcollection queries): Firestore cho phép truy vấn dữ liệu trong các cấu trúc tài liệu con (subcollection) Có thể tạo truy vấn để lấy dữ liệu từ các tài liệu con và áp dụng các truy vấn tiếp theo trên chúng.
1.3.3 Đồng bộ dữ liệu thời gian thực
Firestore cung cấp tính năng đồng bộ dữ liệu thời gian thực (real-time data synchronization), giúp các thay đổi dữ liệu được cập nhật và phản ánh ngay lập tức trên các thiết bị kết nối.
Khi dữ liệu trong Firestore thay đổi, các thiết bị khác kết nối đến cùng một tài liệu hoặc bộ sưu tập sẽ nhận được thông báo hoặc sự kiện về thay đổi đó Các thiết bị có thể đăng ký lắng nghe (subscribe) các sự kiện này để cập nhật giao diện người dùng hoặc thực hiện các hành động tương ứng.
Với tính năng đồng bộ dữ liệu thời gian thực của Firestore, có thể xây dựng các ứng dụng hoạt động mượt mà và tương tác ngay lập tức với dữ liệu. Để sử dụng tính năng đồng bộ dữ liệu thời gian thực, có thể sử dụng API của Firestore để đăng ký lắng nghe các sự kiện thay đổi dữ liệu và cập nhật giao diện người dùng tương ứng Tính năng này giúp tạo ra trải nghiệm người dùng trơn tru và liên tục trong ứng dụng. 1.3.4 Quản lý quyền truy cập
Firestore cung cấp các cơ chế quản lý quyền truy cập và kiểm soát để bảo mật dữ liệu trong cơ sở dữ liệu Có thể xác định quyền truy cập cho từng người dùng, nhóm người dùng hoặc vai trò người dùng để kiểm soát quyền truy cập vào dữ liệu.
Firestore sử dụng mô hình kiểm soát truy cập dựa trên quy tắc (rule- based access control) để xác định quyền truy cập Có thể định nghĩa các quy tắc truy cập linh hoạt dựa trên các tiêu chí như tài liệu, trường dữ liệu, người dùng hiện tại và nhiều yếu tố khác.
Với quyền truy cập được xác định, có thể giới hạn người dùng chỉ có thể đọc (read) hoặc ghi (write) dữ liệu trong tài liệu hoặc bộ sưu tập
PAGE \* MERGEFORMAT 2 cụ thể Ngoài ra cũng có thể kiểm soát quyền truy cập chi tiết hơn bằng cách xác định quyền truy cập cho từng trường dữ liệu trong tài liệu.
So sánh với các công nghệ liên quan và ưu nhược điểm của Firebase Firestore
Firestore hỗ trợ tích hợp trên nhiều nền tảng khác nhau, bao gồm web, Android và iOS Điều này cho phép phát triển ứng dụng đa nền tảng và chia sẻ dữ liệu giữa các phiên bản ứng dụng khác nhau một cách dễ dàng. Đối với ứng dụng web, Firestore cung cấp một tập hợp các API JavaScript để tương tác với cơ sở dữ liệu Có thể sử dụng Firestore SDK cho JavaScript để đọc, ghi và lắng nghe các thay đổi dữ liệu trên trình duyệt web. Đối với ứng dụng di động trên nền tảng Android, Firestore cung cấp Firestore SDK cho Android Có thể sử dụng SDK này để tích hợp Firestore vào ứng dụng Android của mình và tương tác với dữ liệu Firestore trên thiết bị di động. Đối với ứng dụng di động trên nền tảng iOS, Firestore cung cấp Firestore SDK cho iOS Bạn có thể sử dụng SDK này để tích hợp Firestore vào ứng dụng iOS và làm việc với dữ liệu Firestore trên các thiết bị iPhone và iPad.
Việc Firestore hỗ trợ tích hợp trên nhiều nền tảng cho phép xây dựng ứng dụng đa nền tảng và chia sẻ dữ liệu dễ dàng giữa các phiên bản ứng dụng trên web, Android và iOS Điều này giúp tăng tính linh hoạt và khả năng tái sử dụng mã nguồn trong quá trình phát triển ứng dụng.
2.4So sánh với các công nghệ liên quan và ưu nhược điểm của Firebase Firestore
2.4.1 Các công nghệ liên quan và so sánh
Click vào sẽ chuyển sang trang thêm user.
Button thêm ảnh cho user.
Khi click vào sẽ chuyển sang chọn ảnh trong thiết bị.
Nhập thông tin vào trang để thêm user.
Button “Add” dùng để thêm user mới.
Sau khi click “Add” đã thêm thành công user mới
Button “Cancel” dùng để xóa thông tin đang nhập.
Button “Back” dùng để quay về màn hình trước đó.
Khi click và dấu “ ” thì xuất hiện menu
Khi click vào edit sẽ chuyển sang trang edit
Chỉnh sửa thông tin cần chỉnh:
Cập nhật dữ liệu thành công.
Khi click vào dấu “ ” thì xuất hiện menu
Khi click vào delete thì user sẽ bị xóa, xóa user “Trieu Vi Nguyen”:
Khi muốn xóa tất cả user thì click vào dấu “ ” và chọn “Delete All User”
3.3.Xây dựng chức năng quản lý thông tin sinh viên
- Hiển thị danh sách sinh viên
Giao diện sau khi click Managerment Student.
- Thêm, xóa, cập nhật thông tin sinh viênThêm sinh viên click vào button “+”:
Sau khi click sẽ chuyên sang giao diện thêm:
Giao diện thêm sinh viên mới
Nhập đầy đủ thông tin sinh viên
Sau khi click “Add” đã thêm thành công sinh viên mới
Mã sinh viên sẽ được sinh tự động là “52300xxx”
Khi click vào dấu “ ” thì xuất hiện menu
Màn hình thông tin chi tiết sinh viên
Khi click nào nút “Certificate” sẽ hiện ra danh sách chứng chỉ của sinh viên đó
Màn hình hiển thị danh sách chứng chỉ của sinh viên đó
Nhấn nút “+” trên menubar sẽ hiện ra màn hình thêm chứng chỉ mới
Nhập đầy đủ thông tin chứng chỉ
Khi nhấn nút “Add” thì sẽ thêm 1 chứng chỉ mới
Khi click và dấu “ ” thì xuất hiện menu
Chọn Edit để chỉnh sửa certificate
Chọn Delete thì sẽ xóa chứng chỉ đó
Nhấn nút để lọc danh sách sinh viên theo các tiêu chí
Lọc theo giới tính “Male”
3.4 Xây dựng chức năng nhập xuất dữ liệu
- Xuất danh sách sinh viên ra file Excel/CSV
Nhấn nút để xuất danh sách sinh viên ra file csv
Khi nhấn sẽ hiện ra thông báo
HIỆN THỰC ỨNG DỤNG
Xây dựng chức năng quản lý thông tin sinh viên
- Hiển thị danh sách sinh viên
Giao diện sau khi click Managerment Student.
- Thêm, xóa, cập nhật thông tin sinh viênThêm sinh viên click vào button “+”:
Sau khi click sẽ chuyên sang giao diện thêm:
Giao diện thêm sinh viên mới
Nhập đầy đủ thông tin sinh viên
Sau khi click “Add” đã thêm thành công sinh viên mới
Mã sinh viên sẽ được sinh tự động là “52300xxx”
Khi click vào dấu “ ” thì xuất hiện menu
Màn hình thông tin chi tiết sinh viên
Khi click nào nút “Certificate” sẽ hiện ra danh sách chứng chỉ của sinh viên đó
Màn hình hiển thị danh sách chứng chỉ của sinh viên đó
Nhấn nút “+” trên menubar sẽ hiện ra màn hình thêm chứng chỉ mới
Nhập đầy đủ thông tin chứng chỉ
Khi nhấn nút “Add” thì sẽ thêm 1 chứng chỉ mới
Khi click và dấu “ ” thì xuất hiện menu
Chọn Edit để chỉnh sửa certificate
Chọn Delete thì sẽ xóa chứng chỉ đó
Nhấn nút để lọc danh sách sinh viên theo các tiêu chí
Lọc theo giới tính “Male”
Xây dựng chức năng nhập xuất dữ liệu
- Xuất danh sách sinh viên ra file Excel/CSV
Nhấn nút để xuất danh sách sinh viên ra file csv
Khi nhấn sẽ hiện ra thông báo