Tải bản đầy đủ (.pdf) (53 trang)

tìm hiểu google firebase firestore phát triển ứng dụng quản lý thông tin sinh viên

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.91 MB, 53 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

PAGE \* MERGEFORMAT 2

<b>TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG </b>

<b>KHOA CÔNG NGHỆ THÔNG TIN</b>

<b>BÁO CÁO GIỮA KỲ MƠNPHÁT TRIỂN ỨNG DỤNG DI ĐỘNG</b>

<b>TÌM HIỂU GOOGLE FIREBASEFIRESTORE - PHÁT TRIỂN ỨNG DỤNG</b>

<b>QUẢN LÝ THÔNG TIN SINH VIÊN</b>

<i><b>Người hướng dẫn: THẦY VÕ VĂN THÀNHNgười thực hiện: NGUYỄN TRIỆU VI – 52100143</b></i>

<b>VŨ LÊ TIẾN LONG – 52100821CAO NGỌC VÂN TRÚC - 52100133Khoá : 25THÀNH PHỐ HỒ CHÍ MINH, NĂM 2023</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

PAGE \* MERGEFORMAT 2

<b>TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG </b>

<b>KHOA CÔNG NGHỆ THÔNG TIN</b>

<b>BÁO CÁO GIỮA KỲ MÔNPHÁT TRIỂN ỨNG DỤNG DI ĐỘNG</b>

<b>TÌM HIỂU GOOGLE FIREBASEFIRESTORE - PHÁT TRIỂN ỨNG DỤNG</b>

<b>QUẢN LÝ THÔNG TIN SINH VIÊN</b>

<i><b>Người hướng dẫn: THẦY VÕ VĂN THÀNHNgười thực hiện: NGUYỄN TRIỆU VI – 52100143</b></i>

<b>VŨ LÊ TIẾN LONG – 52100821CAO NGỌC VÂN TRÚC - 52100133Khoá : 25THÀNH PHỐ HỒ CHÍ MINH, NĂM 2023</b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

Chúng em xin chân thành cảm ơn Thầy và cam kết sẽ tiếp thu những góp ý và hướng dẫn từ Thầy để chúng em ngày càng hoàn thiện và phát triển hơn trong lĩnh vực phát triển ứng dụng di động.

Xin chân thành cảm ơn!

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

PAGE \* MERGEFORMAT 2

<b>ĐỒ ÁN ĐƯỢC HOÀN THÀNHTẠI TRƯỜNG ĐẠI HỌC TƠN ĐỨC THẮNG</b>

Tơi xin cam đoan đây là cơng trình nghiên cứu của riêng tôi và được sựhướng dẫn khoa học của Giảng viên bộ môn. Các nội dung nghiên cứu, kết quảtrong đề tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây.Những số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giáđược chính tác giả thu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệutham khảo.

Ngồi ra, trong Báo cáo cịn sử dụng một số nhận xét, đánh giá cũng như sốliệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồngốc.

<b>Nếu phát hiện có bất kỳ sự gian lận nào tơi xin hồn tồn chịu tráchnhiệm về nội dung Báo cáo của mình. Trường Đại học Tôn Đức Thắng không</b>

liên quan đến những vi phạm tác quyền, bản quyền do tôi gây ra trong q trìnhthực hiện (nếu có).

<i>TP. Hồ Chí Minh, ngày 25 tháng 11 năm 2023 (ký tên và ghi rõ họ tên)</i>

<i>Vũ Lê Tiến LongNguyễn Triệu ViCao Ngọc Vân Trúc</i>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

1.2. Giới thiệu đề tài...8

<b>CHƯƠNG II - NGHIÊN CỨU TOÀN DIỆN VỀ GOOGLE FIREBASE FIRESTORE... 9</b>

2.1 Giới thiệu về Google Firebase Firestore...9

1.1.1. Định nghĩa và khái niệm cơ bản về Firebase Firestor...9

1.1.2. Các tính năng và lơi ích của Firebase Firestore...9

2.2 Kiến trúc của Firebase Firestore...10

1.2.1. Cấu trúc dữ liệu và cách tổ chức dữ liệu trong Firestore....10

1.2.2. Cơ chế lưu trữ và đồng bộ dữ liệu thời gian thực...10

2.3 Các chức năng và tính năng của Firease Firestore...11

1.3.1. Lưu trữ dữ liệu...11

1.3.2. Truy vấn dữ liệu...12

1.3.3. Đồng bộ dữ liệu thời gian thực...13

1.3.4. Quản lý quyền truy cập...13

1.3.5. Tích hợp các dịch vụ khác của Firebase...14

1.3.6. Tích hợp đa nền tảng...15

2.4 So sánh với các công nghệ liên quan và ưu nhược điểm của Firebase Firestore...15

2.4.1. Các công nghệ liên quan và so sánh...15

2.4.2. Ưu điểm của Firebase Firestore...16

2.4.3. Hạn chế của Firebase Firestore...17

<b>CHƯƠNG III - HIỆN THỰC ỨNG DỤNG...19</b>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

PAGE \* MERGEFORMAT 2

3.1. Thiết kế giao diện và cấu trúc ứng dụng...19

3.2. Xây dựng chức năng quản lý tài khoản người dùng...19

3.3. Xây dựng chức năng quản lý thông tin sinh viên...19

3.4. Xây dựng chức năng nhập xuất dữ liệu...19

3.5. Kiểm thử và đánh giá ứng dụng...19

3.6. Tổng kết và hướng phát triển tương lai...19

<b>TÀI LIỆU THAM KHẢO...20</b>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

PAGE \* MERGEFORMAT 2

<b>DANH MỤC HÌNH</b>

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>1.2.Giới thiệu đề tài</b>

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. 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ă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àxố 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àoviệ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.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

PAGE \* MERGEFORMAT 2

<b>CHƯƠNG II - NGHIÊN CỨU TOÀN DIỆN VỀ GOOGLEFIREBASE FIRESTORE</b>

<b>2.1Giới thiệu về Google Firebase Firestore</b>

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ởiGoogle Firebase. Nó là một phần của nền tảng Firebase và được thiết kế để lưutrữ 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ệulà một tài liệu JSON, cho phép lưu trữ tài liệu phong phú và phân cấp. Firestorecung 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

<i>Đồng bộ dữ liệu thời gian thực: Firebase Firestore cho phép đồng bộ dữ </i>

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.

<i>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 </i>

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.

<i>Truy vấn linh hoạt: Firestore cung cấp các truy vấn mạnh mẽ để truy xuất </i>

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.

<i>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 để</i>

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ò.

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

PAGE \* MERGEFORMAT 2

<i>Mở rộng và tin cậy: Firestore được xây dựng trên cơ sở hạ tầng đám mây </i>

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.

<i>Hỗ trợ làm việc ngoại tuyến: Firestore cho phép ứng dụng hoạt động và </i>

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.

<b>2.2Kiến trúc của Firebase Firestore</b>

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áctài liệu này được nhóm lại thành các bộ sưu tập (collections).

<i>Tài liệu (Document): Là một bản ghi cơ bản trong Firestore. Mỗi</i>

tài liệu được đại diện bằng một tài liệu duy nhất có một ID duynhấ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.

<i>Bộ sưu tập (Collection): Là một nhóm các tài liệu liên quan trong</i>

Firestore. Các tài liệu trong một bộ sưu tập khơng cần phải có cấutrúc dữ liệu giống nhau. Mỗi bộ sưu tập được đặt tên theo ý muốncủ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ạora 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

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

PAGE \* MERGEFORMAT 2

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ácthiết bị kết nối.

<i>Lưu trữ: Firestore lưu trữ dữ liệu trên cơ sở hạ tầng đám mây của</i>

Google. Dữ liệu được phân tán và sao lưu để đảm bảo tính tồnvẹn và tin cậy.

<i>Đồng bộ dữ liệu thời gian thực: Firestore sử dụng cơ chế đồng bộ</i>

dữ liệu thời gian thực để đảm bảo rằng các thay đổi dữ liệu đượccậ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ênFirestore Cloud. Firestore Cloud xử lý các thay đổi và phân phốichú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ácthay đổi dữ liệu và ứng dụng có thể cập nhật giao diện người dùnghoặ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 đảmbả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.

<b>2.3Các chức năng và tính năng của Firease Firestore</b>

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:

1.3.1. Lưu trữ dữ liệu

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ứacác cặp khoá-giá trị. Mỗi cặp khoá-giá trị bao gồm một tên trường

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

PAGE \* MERGEFORMAT 2

(field name) và giá trị tương ứng. Bạn có thể lưu trữ các kiểu dữ liệunhư 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) trongFirestore. Mỗi bộ sưu tập đại diện cho một nhóm các tài liệu có cùngcấ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ácthao 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ạitính linh hoạt và dễ dàng trong việc tổ chức và truy xuất dữ liệu theonhu cầu của ứng dụng.

1.3.2. Truy vấn dữ liệu

<i>Truy vấn dựa trên giá trị trường (Field-based queries): Có thể tạo</i>

truy vấn để tìm kiếm dữ liệu dựa trên giá trị của một hoặc nhiềutrường trong tài liệu.

<i>Điều kiện lọc (Filtering): Firestore cho phép áp dụng các điều kiện</i>

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.

<i>Truy vấn phân trang (Pagination): Firestore hỗ trợ truy vấn phân</i>

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ácphần dữ liệu theo từng trang.

<i>Truy vấn theo cấu trúc tài liệu con (Subcollection queries): Firestore</i>

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 convà áp dụng các truy vấn tiếp theo trên chúng.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

PAGE \* MERGEFORMAT 2

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-timedata 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 đếncù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áchà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ứcvớ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ụngAPI của Firestore để đăng ký lắng nghe các sự kiện thay đổi dữ liệuvà cập nhật giao diện người dùng tương ứng. Tính năng này giúp tạora 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ậpcho 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 sốt truy cập dựa trên quy tắc based access control) để xác định quyền truy cập. Có thể định nghĩacá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.

(rule-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

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

PAGE \* MERGEFORMAT 2

cụ thể. Ngồi ra cũng có thể kiểm soát quyền truy cập chi tiết hơnbằng cách xác định quyền truy cập cho từng trường dữ liệu trong tàiliệu.

Firestore cung cấp một ngôn ngữ truy vấn mạnh mẽ gọi là FirestoreSecurity Rules để xác định và quản lý quyền truy cập. Bằng cách sửdụng ngơn ngữ này, có thể thiết lập các quy tắc truy cập phức tạp,bao gồm kiểm tra điều kiện, so sánh giá trị và áp dụng logic điềukiện.

Việc sử dụng quyền truy cập và kiểm soát trong Firestore giúp bảo vệdữ liệu quan trọng khỏi truy cập trái phép và đảm bảo tính bảo mậttrong ứng dụng.

1.3.5. Tích hợp các dịch vụ khác của Firebase

<i>Firebase Authentication: Bằng cách tích hợp Firestore với Firebase</i>

Authentication, có thể xác thực người dùng và kiểm soát quyền truycập vào dữ liệu. Có thể lưu trữ thơng tin người dùng trong Firestorevà áp dụng các quy tắc truy cập dựa trên thông tin xác thực.

<i>Firebase Cloud Functions: Kết hợp Firestore với Firebase Cloud</i>

Functions, có thể tạo các chức năng máy chủ (serverless functions)để xử lý các sự kiện và tương tác với dữ liệu Firestore.

<i>Firebase Cloud Messaging: Firestore có thể tích hợp với Firebase</i>

Cloud Messaging để gửi thông báo đẩy (push notifications) đếnngười dùng. Bằng cách kết hợp dữ liệu Firestore với Firebase CloudMessaging, có thể gửi thơng báo dựa trên các sự kiện trong Firestore,chẳng hạn như khi có dữ liệu mới được thêm vào.

<i>Firebase Analytics: Firestore tích hợp với Firebase Analytics để theo</i>

dõi và phân tích hoạt động của người dùng trong ứng dụng. Có thể sử

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

Đối với ứng dụng web, Firestore cung cấp một tập hợp các APIJavaScript để tương tác với cơ sở dữ liệu. Có thể sử dụng FirestoreSDK cho JavaScript để đọc, ghi và lắng nghe các thay đổi dữ liệutrên trình duyệt web.

Đối với ứng dụng di động trên nền tảng Android, Firestore cung cấpFirestore SDK cho Android. Có thể sử dụng SDK này để tích hợpFirestore vào ứng dụng Android của mình và tương tác với dữ liệuFirestore 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ấpFirestore SDK cho iOS. Bạn có thể sử dụng SDK này để tích hợpFirestore vào ứng dụng iOS và làm việc với dữ liệu Firestore trên cácthiế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 linhhoạt và khả năng tái sử dụng mã nguồn trong quá trình phát triển ứngdụng.

<b>2.4So sánh với các công nghệ liên quan và ưu nhược điểm của Firebase Firestore</b>

2.4.1. Các công nghệ liên quan và so sánh

</div>

×