Professional Documents
Culture Documents
Message - Báo Cáo
Message - Báo Cáo
Message - Báo Cáo
*********************
LỚP: DHTI14A13HN
Nhóm 01
Giảng viên:
Ths. Nguyễn Thùy Dung
Thành viên:
Nguyễn Đình Hoàng
Nguyễn Tiến Hưng
Hà Nội - 2023
1
BỘ CÔNG THƯƠNG
*********************
LỚP: DHTI14A13HN
Nhóm 01
Giảng viên:
Ths. Nguyễn Thùy Dung
Thành viên:
Nguyễn Đình Hoàng
Nguyễn Tiến Hưng
Hà Nội - 2023
2
Mục lục
Mục lục................................................................................................................................3
Mở đầu.................................................................................................................................8
1.3.3. Firebase.........................................................................................................13
2.1. Xây dựng chức năng, nhiệm vụ “hoặc tính năng nhiệm vụ”...............................19
2.2.1. Xây dựng biểu đồ Use Case tổng quát và biểu đồ Use Case cho từng bước....19
3.1.1. Cài đặt môi trường và kết nối nền tảng Firebase..............................................40
Kết luận..............................................................................................................................52
4
Danh mục hình ảnh
Hình 2.3 Biểu đồ Use Case chức năng quản lý thông tin cá nhân.....................................23
Hình 2.5 Biểu đồ Use Case chức năng gửi và nhận thông điệp........................................25
Hình 2.8 Biểu đồ hoạt động chức năng quản lý thông tin tài khoản.................................28
Hình 2.10 Biểu đồ hoạt động chức năng gửi và nhận thông điệp......................................30
Hình 2.12 Biểu đồ tuần tự chức năng gửi và nhận thông điệp..........................................32
Hình 2.13 Biểu đồ tuần tự chức năng quản lý thông tin tài khoản....................................33
Hình 2.15 Ứng dụng chức năng Authencation trên nền tảng Firebase..............................35
Hình 2.16 Xây dựng cơ sở dữ liệu trên cơ sở dữ liệu Firestore của nền tảng Firebase.....37
5
Hình 2.17 Ứng dụng Storage lưu trữ ảnh đại diện của người dùng...................................38
Hình 2.18 Ứng dụng Cloud Messaging để tạo thông báo cho ứng dụng...........................39
Hình 3.1 Quá trình cài đặt Firebase vào Android studio...................................................40
Hình 3.5 Giao diện đăng nhập – Hiển thị tên người dùng.................................................44
6
Danh mục bảng biểu
7
Mở đầu
Với xã hội ngày càng phát triển hiện nay, nhu cầu đời sống con người ngày càng
nâng cao. Nhu cầu sử dụng một ứng dụng nhắn tin để có thể truyền tải các thông điệp
giữa người với người giúp tiết kiệm chi phí, ví dụ: Mỗi khi người dùng để có thể gửi một
thông điệp bất kì qua nhà mạng Viettel sẽ tiêu tốn 300đ/sms đối với các thuê bao nội
mạng và 350đ/sms đối với các thuê bao ngoại mạng. Trong đề tài này chúng em đề xuất
một ứng dụng Message giúp người dùng có thể gửi và nhận thông điệp không giới hạn và
người dùng chỉ phải bỏ ra một khoản chi phí mạng nhỏ cho các nhà mạng.
Giải pháp do nhóm đề xuất: Xây dựng một ứng dụng Android kết hợp với cloud Firebase
để xử lý dữ liệu. Xây dựng một hệ thống truyền thông điệp hoàn chỉnh để có thể đảm
đương chức năng nhắn tin cho nền tảng xã hội MyBook.
Cụ thể: Người dùng tạo một tài khoản cho riêng mình trên ứng dụng và kết nối với các
người dùng khác thông qua việc tìm kiếm tên của họ. Khi cả hai đã được kết nối với nhau
thì họ có thể gửi bất kì thông điệp nào cho nhau.
8
o Lập trình android với JavaCore
- Mục tiêu:
Nghiên cứu lập trình xây dựng ứng dụng di động kết hợp cơ sở dữ liệu Firebase.
Dựa trên nghiên cứu đó, xây dựng ứng dụng Message truyền nhận thông điệp thời
gian thực giữa hai người dùng với nhau.
Một ứng dụng Message với các chức năng như: gửi và nhận thông điệp, tìm kiếm
bạn bè, cập nhật thông tin tại khoản, thay đổi ảnh đại diện và các chức năng đăng nhập,
đăng xuất. Ứng dụng được xây dựng độc lập dựa trên tính năng nhắn tin của nền tảng
mạng xã hội MyBook
Ngoài phần mở đầu, kết luận, phụ lục và danh mục tài liệu tham khảo, nội
dung của đề tài gồm 3 chương:
9
Phần B: NỘI DUNG
Với xã hội ngày càng phát triển hiện nay, nhu cầu đời sống con người ngày càng
nâng cao. Nhu cầu sử dụng một ứng dụng nhắn tin để có thể truyền tải các thông điệp
giữa người với người giúp tiết kiệm chi phí, ví dụ: Mỗi khi người dùng để có thể gửi một
thông điệp bất kì qua nhà mạng Viettel sẽ tiêu tốn 300đ/sms đối với các thuê bao nội
mạng và 350đ/sms đối với các thuê bao ngoại mạng.
Ngoài ra, nền tảng mạng xã hội MyBook là điểm kết nối giữa con người với con
người, giữa cộng đồng với cộng đồng. Trong tình hình xã hội ngày càng phát triển, điều
đó đòi hỏi nền tảng cần phải liên tục cập nhật, liên tục đổi mới để có thể phù hợp với nhu
cầu của người dùng thời đại 4.0. Điều đó giúp MyBook có thể cạnh tranh và có chỗ đứng
trong thị trường.
Vì vậy viêc tạo nên một ứng dụng Message là vô cùng cần thiết. Khi ứng dụng ra
đời, nó sẽ giúp giảm thiểu chức năng trên trang chủ của MyBook. Ứng dùng còn là một
phương thức tiếp cận người dùng hiệu quả trong thời đại mà nhà nhà dùng điện thoại.
1.2. Khảo sát hiện trạng
1.2.1. Giới thiệu về ứng trang web MyBook
- Trang web MyBook là một nền tảng mạng xã hội cho phép người dùng tạo và
quản lý hồ sơ cá nhân, kết nối với bạn bè, gia đình và đồng nghiệp, và chia sẻ nội
dung đa dạng.
- Địa chỉ trang web: https://www.mybook.com/
1.2.2. Quá trình sử dụng MyBook
10
- Người dùng đăng nhập tạo trang cá nhân của bản thân trên trang web chính của
MyBook.
- Người dùng chia sẻ các khoảnh khắc của bản thân lên bản tin
- Kết nối với bạn bè và tạo các group với những người có chung sở thích.
1.2.3. Những vấn đề bất cập
- Thiếu tính linh hoạt: Khi người dùng sử dụng điện thoại di động và chỉ muốn nhắn
tin với một ai khác cần phải truy cập vào trang web với nhiều tính năng khác.
- Khó phát triển và cập nhật: Khi phát triển và cập nhật chức năng thì cần đợi đến
lịch cập nhật MyBook. Việc cập nhật riêng một tính năng cũng gặp nhiều khó
khăn.
- Tách riêng chức năng nhắn tin giúp giảm các chức năng không cần thiết cho
những người dùng chỉ quan tâm chức năng nhắn tin, giúp giảm độ phức tạp và ứng
dụng dễ sử dụng hơn. Bên cạnh đó cũng giúp cho việc bảo trì và cập nhật dễ dàng
hơn.
- Trong thị trường ngày càng cạnh tranh, việc tạo ra ứng dụng độc lập cũng là cách
thu hút người dùng và cạnh tranh hiệu quả.
1.3. Công cụ sử dụng
1.3.1. Android Studio
Android Studio là Môi trường phát triển tích hợp (IDE) chính thức để phát triển ứng
dụng Android. Nhờ có công cụ cho nhà phát triển và trình soạn thảo mã mạnh mẽ của
IntelliJ IDEA, Android Studio cung cấp thêm nhiều tính năng giúp bạn nâng cao năng
suất khi xây dựng ứng dụng Android, chẳng hạn như:
Một môi trường hợp nhất nơi bạn có thể phát triển cho mọi thiết bị Android
11
Tính năng Live Edit (Chỉnh sửa trực tiếp) để cập nhật các thành phần kết hợp
trong trình mô phỏng và thiết bị thực theo thời gian thực
Mã mẫu và quá trình tích hợp GitHub để giúp bạn xây dựng các tính năng ứng
dụng phổ biến cũng như nhập mã mẫu
Công cụ tìm lỗi mã nguồn (lint) để nắm bắt hiệu suất, khả năng hữu dụng, khả
năng tương thích với phiên bản và các vấn đề khác
Tích hợp sẵn tính năng hỗ trợ Google Cloud Platform, giúp dễ dàng tích hợp
Google Cloud Messaging và App Engine
Java là một ngôn ngữ lập lập trình, được phát triển bởi Sun Microsystem vào năm
1995, là ngôn ngữ kế thừa trực tiếp từ C/C++ và là một ngôn ngữ lập trình hướng đối
tượng.
Vì sao ngôn ngữ này lại được đặt tên là Java? Java là tên một hòn đảo ở Indonesia -
hòn đảo nổi tiếng với loại coffee Peet và cũng là loại nước uống phổ biến của các kỹ sư
Sun. Ban đầu Ngôn ngữ này được đặt tên là "Oak" (có nghĩa là "Cây sồi" - 1991), nhưng
các luật sư của Sun xác định rằng tên đó đã được đăng ký nhãn hiệu nên các nhà phát
triển đã phải thay thế bằng một tên mới - và cũng vì lý do trên mà cái tên Java đã ra đời
và trở thành tên gọi chính thức của Ngôn ngữ này - Ngôn ngữ Lập trình Java.
Ngày nay Java được sử dụng với các mục đích sau:
Phát triển ứng dụng cho các thiết bị điện tử thông minh, các ứng dụng cho doanh
nghiệp với quy mô lớn.
Tạo các trang web có nội dung động (web applet), nâng cao chức năng của server.
12
Phát triển nhiều loại ứng dụng khác nhau: Cơ sở dữ liệu, mạng, Internet, viễn
thông, giải trí, ...
1.3.3. Firebase
Tổng quan:
Firebase là một nền tảng của Google cung cấp các dịch vụ cho các ứng dụng di động và
web như lưu trữ dữ liệu, xác thực người dùng, phân tích dữ liệu, thông báo đẩy và cơ sở
hạ tầng đám mây. Firebase được phát triển nhằm giúp cho các nhà phát triển ứng dụng
tập trung vào việc phát triển chức năng của ứng dụng thay vì phải lo lắng về cơ sở hạ
tầng và quản lý dữ liệu.
Tính năng:
1. Realtime Database: Đây là một cơ sở dữ liệu NoSQL được lưu trữ trên đám mây
và cho phép đồng bộ dữ liệu trực tiếp giữa các thiết bị và ứng dụng. Realtime
Database sử dụng giao thức WebSocket để cập nhật dữ liệu một cách nhanh chóng
và đáng tin cậy.
2. Authentication: Firebase cung cấp các tính năng xác thực người dùng đa nền tảng
và dễ sử dụng, bao gồm đăng nhập bằng email, Facebook, Google và Twitter. Tính
năng này giúp cho các nhà phát triển dễ dàng xác thực người dùng và bảo vệ dữ
liệu của họ.
13
3. Cloud Messaging: Firebase cung cấp các tính năng thông báo đẩy cho các ứng
dụng di động và web, cho phép các nhà phát triển gửi thông báo đến các thiết bị
của người dùng một cách nhanh chóng và hiệu quả.
4. Hosting: Firebase cung cấp một dịch vụ lưu trữ đám mây cho các ứng dụng web,
cho phép các nhà phát triển dễ dàng triển khai và quản lý các ứng dụng của họ trên
đám mây của Firebase.
5. Analytics: Firebase cung cấp các tính năng phân tích dữ liệu cho các ứng dụng,
cho phép các nhà phát triển theo dõi các hoạt động của người dùng và đo lường
hiệu quả của các chiến dịch tiếp thị và các chức năng khác của ứng dụng.
Firebase là một nền tảng đáng tin cậy và dễ sử dụng cho các nhà phát triển ứng dụng,
giúp cho việc phát triển các tính năng của ứng dụng trở nên dễ dàng hơn và giảm bớt các
thách thức về quản lý dữ liệu và cơ sở hạ tầng.
+ Ưu điểm:
14
Nền tảng Firebase được sử dụng rộng khắp nơi không chỉ là điều ngẫu nhiên. Bởi lẽ ứng
dụng này sở hữu riêng cho mình nhiều ưu điểm vô cùng nổi bật. Điển hình:
Sử dụng dễ dàng: Những người dùng có thể đăng ký một tài khoản Firebase thông
qua tài khoản Google. Đồng thời, người cùng cũng có thể sử dụng nền tảng này
trong quá trình phát triển ứng dụng một cách đơn giản nhất.
Tốc độ phát triển nhanh: Ưu điểm tiếp theo chính là Firebase hỗ trợ cho việc phát
triển ứng dụng rất nhanh chóng. Điều này sẽ giúp lập trình viên giảm bớt được
thời gian để phát triển cũng như tiếp thị ứng dụng.
Cung cấp nhiều dịch vụ: Firebase còn cung cấp đa dịch vụ cho mục đích phát triển
trang web. Người dùng có thể lựa chọn database Firestore hoặc Realtime theo
đúng ý muốn của mình.
Nền tảng cho Google phát triển: google firebase là gì? Firebase được Google mua
lại và trở thành một phần của Google. Ứng dụng này sẽ khai
thác được triệt để sức mạnh cũng như các dịch vụ hiện đang sẵn có của Google.
Giao diện người dùng được chú trọng: Firebase sẽ cho phép các lập trình viên tập
trung hơn vào việc phát triển giao diện của người dùng thông qua kho Backend
mẫu vô cùng đa dạng.
Firebase app không có máy chủ: Chính điều này sẽ giúp cho Firebase có được khả
năng tối ưu hóa nhất về hiệu suất làm việc nhờ vào việc mở rộng cụm database.
Học máy: Ứng dụng Firebase sẽ cung cấp học máy cho các lập trình viên để hỗ trợ
tốt nhất cho việc phát triển ứng dụng.
Tạo lưu lượng truy cập: Firebase App sẽ hỗ trợ việc tạo lập các chỉ mục. Đồng
thời, Firebase cũng sẽ giúp nâng cao thứ hạng của ứng dụng ở trên bảng xếp hạng
của Google. Nhờ vậy mà lượt traffic sẽ tăng lên.
15
Theo dõi lỗi: Đây là một công cụ để phát triển cũng như khắc phục lỗi vô cùng
tuyệt vời. Nhờ vậy khi sử dụng, bạn không cần lo lắng mình sẽ để sót lỗi.
Chức năng sao lưu: cách sử dụng firebase sao lưu một cách thường xuyên và đảm
bảo tính sẵn có. Đồng thời, chức năng này cũng giúp cho thông tin và dữ liệu được
bảo mật một cách an toàn nhất.
+ Nhược điểm:
Bên cạnh những ưu điểm nổi bật thì Firebase cũng còn tồn tại một số nhược điểm nhất
định:
Firebase không là mã nguồn mở: Điều này sẽ giúp cho ứng dụng trở thành một lựa
chọn không quá tối ưu đối với nhiều nhà phát triển. Người dùng không thể sửa đổi
được mã nguồn Firebase.
Người dùng không truy cập được mã nguồn: Đối với những ứng dụng lớn thì việc
chuyển đổi sang các nhà cung cấp khác thực sự không dễ dàng. Để làm được điều
này thì toàn bộ Backend cần phải được xây dựng lại từ đầu.
16
Nền tảng không hoạt động nhiều quốc gia: Firebase chính là một Subdomain của
Google.Trang web chính thức của Firebase hiện tại đang bị chặn ở nhiều quốc gia
trên thế giới, trong đó có cả Trung Quốc.
Firebase chỉ hoạt động với CSDL NoSQL: Người dùng sẽ không thể xử lý được
dữ liệu một cách nhanh chóng. Firebase chỉ sử dụng JSON và hầu như không có
SQL. Chính vì vậy, để di chuyển từ cơ sở dữ liệu sẽ không hề dễ dàng.
Firebase chỉ chạy trên Google Cloud: Firebase trở thành một phần của Google và
tất cả cơ sở hạ tầng của ứng dụng đều hoạt động trên Google Cloud. Người dùng
không thể chạy ứng dụng trên những đơn vị cung cấp đám mây khác.
Bên cạnh những ưu điểm nổi bật thì Firebase cũng còn tồn tại một số nhược điểm
nhất định:
Firebase không là mã nguồn mở: Điều này sẽ giúp cho ứng dụng trở thành một lựa
chọn không quá tối ưu đối với nhiều nhà phát triển. Người dùng không thể sửa đổi
được mã nguồn Firebase.
Người dùng không truy cập được mã nguồn: Đối với những ứng dụng lớn thì việc
chuyển đổi sang các nhà cung cấp khác thực sự không dễ dàng. Để làm được điều
này thì toàn bộ Backend cần phải được xây dựng lại từ đầu.
Nền tảng không hoạt động nhiều quốc gia: Firebase chính là một Subdomain của
Google.Trang web chính thức của Firebase hiện tại đang bị chặn ở nhiều quốc gia
trên thế giới, trong đó có cả Trung Quốc.
Firebase chỉ hoạt động với CSDL NoSQL: Người dùng sẽ không thể xử lý được
dữ liệu một cách nhanh chóng. Firebase chỉ sử dụng JSON và hầu như không có
SQL. Chính vì vậy, để di chuyển từ cơ sở dữ liệu sẽ không hề dễ dàng.
Firebase chỉ chạy trên Google Cloud: Firebase trở thành một phần của Google và
tất cả cơ sở hạ tầng của ứng dụng đều hoạt động trên Google Cloud. Người dùng
không thể chạy ứng dụng trên những đơn vị cung cấp đám mây khác.
17
-Khi sử dụng FireBase lúc cần có một tài khoản được tạo ra trên Trang chủ của FireBare
18
CHƯƠNG 2: NỘI DUNG NGHIÊN CỨU
2.1. Xây dựng chức năng, nhiệm vụ “hoặc tính năng nhiệm vụ”
2.1.1. Xây dựng chức năng hệ thống
- Đối với người dùng:
o Đăng nhập bằng số điện thoại và xác nhận bằng mã OTP.
o Quản lý thông tin tài khoản.
o Tìm kiếm bạn bè.
o Gửi và nhận thông điệp thời gian thực
2.1.2. Mô tả chức năng hệ thống
Thông qua các yêu cầu nghiệp vụ, ứng dụng có các chức năng sau:
- Đăng nhập: Chức năng này cho phép người dùng đăng nhập bằng số điện thoại và
xác nhận tài khoản bằng mã OTP.
- Tìm kiếm: Chức năng này cho phép người dùng tìm kiếm bạn bè thông qua tên của
họ.
- Quản lý thông tin cá nhân: Chức năng này cho phép người dùng xem thông tin cá
nhân của bản thân. Người dùng có thể cập nhật lại tên và ảnh đại diện của bản thân.
- Nhắn tin: Chức năng này cho phép gửi và nhận thông điệp giữa người dùng và
người dùng theo thời gian thực.
- Quản lý dữ liệu trên nền tảng Firebase: Chức năng này cho phép người quản lý kiểm
soạt luồng thông tin người dùng.
19
2.2.1. Xây dựng biểu đồ Use Case tổng quát và biểu đồ Use Case cho từng bước
1 Người dùng Là người thực hiện các thao tác tìm kiếm,
đăng nhập, gửi và nhận thông điệp, …
20
Hình 2.5 Biểu đồ Use Case tổng quát
21
A-2 sẽ được gọi.
Bước 5: Nhập mã OTP và chọn Tiếp theo.
Bước 6: Kiểm tra dữ liệu mã OTP. Nếu sai, luồng con A-3 sẽ được
gọi.
Bước 7: Kiểm tra thông tin tên người dùng. Nếu tồn tại, luông A-4
sẽ được gọi. Nếu không tồn tại, luồng A-5 sẽ được gọi.
Bước 8: Nhập tên người dùng.
Bước 9: Kiểm tra dữ liệu tên người dùng. Nếu sai, luồng A-6 sẽ
được gọi.
Bước 10: Nhấn đăng nhập và hiển thị View trang chủ.
Luồng con A-1 Người dùng nhập sai kiểu dữ liệu số điện thoại:
- A-1.1 Quay về bước 1 và thông báo số điện thoại nhập chưa
đúng.
A-2 Người dùng không nhận được mã OTP:
- A-2.1 Người dùng ấn nút Gửi lại và quay lại bước 4.
A-3 Người dùng nhập sai mã OTP:
- A-3.1 Quay lại bước 5 và hiển thị thông báo mã OTP chưa
đúng.
A-4 Thông tin người dùng không tồn tại:
- A-4.1 Chuyển đến bước 8.
A-5 Thông tin người dùng đã tồn tại:
- A-5.1 Chuyển đến bước 10.
A-6 Người dùng nhập tên dưới 3 kí tự:
- A-6.1 Chuyển đến bước 8 và thông báo tên người dùng phải
lớn hơn 3 kí tự
22
c. Chức năng quản lý thông tin tài khoản:
Hình 2.7 Biểu đồ Use Case chức năng quản lý thông tin cá nhân
24
Đặc tả Use Case
Hình 2.9 Biểu đồ Use Case chức năng gửi và nhận thông điệp
26
2.2.3. Xây dựng biểu đồ hoạt động
27
Hình 2.12 Biểu đồ hoạt động chức năng quản lý thông tin tài khoản
28
Hình 2.13 Biểu đồ hoạt động chức năng tìm kiếm
29
Hình 2.14 Biểu đồ hoạt động chức năng gửi và nhận thông điệp
30
2.2.4. Biểu đồ tuần tự các chức năng
31
Hình 2.16 Biểu đồ tuần tự chức năng gửi và nhận thông điệp
32
Hình 2.17 Biểu đồ tuần tự chức năng quản lý thông tin tài khoản
33
Hình 2.18 Biểu đồ tuần tự chức năng tìm kiếm
34
chatroomId string
lastMessage string
lastMessageSenderId string
LastMessageTimestamp timestamp
usersIds array
Bảng chatroom
createdTimestamp timestamp
fcmToken string
phone string
userId string
userName string
Bảng users
message
senderId
timestamp
Bảng chat
35
2.2.5. Xây dựng cơ sở dữ liệu trên nền tảng Firebase
Hình 2.19 Ứng dụng chức năng Authencation trên nền tảng Firebase
Firebase Authentication là một dịch vụ của Firebase cung cấp các công cụ để xác
thực người dùng trong ứng dụng của bạn. Nó hỗ trợ nhiều phương thức xác thực khác
nhau, bao gồm xác thực qua email/password, xác thực qua số điện thoại, xác thực qua các
nhà cung cấp bên thứ ba (ví dụ: Google, Facebook, Twitter), và nhiều phương thức khác.
Ở trong ứng dụng Message này, nhóm em sử dụng phương thức xác thực qua số điện
thoại.
36
37
Hình 2.20 Xây dựng cơ sở dữ liệu trên cơ sở dữ liệu Firestore của nền tảng Firebase
Firestore là một cơ sở dữ liệu của Firebase, được thiết kế để lưu trữ và đồng bộ dữ
liệu giữa ứng dụng của bạn trên nhiều thiết bị. Firestore cung cấp một cách linh hoạt để
lưu trữ và truy vấn dữ liệu thông qua các tài liệu (documents) và bộ sưu tập (collections).
Dưới đây là một số khái niệm cơ bản về Firestore:
- Bộ sưu tập (Collection): Một bộ sưu tập là một nhóm các tài liệu có cùng một
loại dữ liệu. Ví dụ, bạn có thể có một bộ sưu tập chứa thông tin về người dùng và
một bộ sưu tập khác chứa dữ liệu về sản phẩm.
- Tài liệu (Document): Mỗi tài liệu trong Firestore là một bản ghi dữ liệu, được lưu
trữ dưới dạng cặp khóa (key) - giá trị (value). Tài liệu có thể chứa mọi loại dữ liệu,
bao gồm chuỗi (string), số (number), mảng (array) và các loại dữ liệu khác.
- Trường (Field): Mỗi tài liệu có thể chứa nhiều trường, mỗi trường đại diện cho
một phần của dữ liệu. Ví dụ, một tài liệu về người dùng có thể có các trường như
"userId", "username".
38
- Dịch vụ Firestore trong Firebase SDK: Để sử dụng Firestore trong ứng dụng
của bạn, bạn cần thêm Firebase SDK vào dự án của mình và cấu hình nó với thông
tin tài khoản Firebase của bạn. Sau đó, bạn có thể sử dụng API của Firestore để
thực hiện các thao tác như đọc, ghi, và cập nhật dữ liệu.
Hình 2.21 Ứng dụng Storage lưu trữ ảnh đại diện của người dùng
Firebase Storage là một dịch vụ lưu trữ đám mây của Firebase, giúp bạn lưu trữ và
quản lý các tệp tin như hình ảnh, video, và các dữ liệu nhẹ khác trên đám mây của
Google. Dịch vụ này được tích hợp chặt chẽ với các dịch vụ Firebase khác và cung cấp
API dễ sử dụng cho việc tải lên và tải xuống tệp tin từ ứng dụng của bạn.
39
Hình 2.22 Ứng dụng Cloud Messaging để tạo thông báo cho ứng dụng
Firebase Cloud Messaging (FCM) là dịch vụ messaging của Firebase, cho phép
bạn gửi các thông báo và tin nhắn từ server đến ứng dụng di động, trang web và các thiết
bị khác.
40
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH
Hình 3.23 Quá trình cài đặt Firebase vào Android studio
Khi người dùng mở ứng dụng Message sẽ hiện lên trang đăng nhập để người dùng
nhập số điện thoại. Sau khi nhập số điện thoại xong, người dùng nhấn Gửi OTP để tiếp
tục quá trình đăng nhập.
41
Hình 3.24 Giao diện đăng nhập – Nhập số điện thoại
Sau khi nhấn gửi OTP, người dùng sẽ được chuyển đến trang nhập mã OTP.
42
Hình 3.25 Giao diện đăng nhập – Nhập mã OTP
Cùng lúc đó thì người dùng cũng sẽ nhận được mã OTP được gửi đến số điện
thoại mà người dùng đã nhập.
43
Hình 3.26 Mã OTP được gửi từ CloudOTP
Người dùng nhập mã OTP nhận được và nhấn Tiếp theo để đến trang hiển thị tên
người dùng.
44
Hình 3.27 Giao diện đăng nhập – Hiển thị tên người dùng
Nếu người dùng đã đăng nhập bằng số điện thoại này trước đó thì tên người dùng
sẽ được hiển thị. Nếu trước đó người dùng chưa đăng nhập bằng số điện thoại này thì
người dùng cần phải nhập Tên người dùng với độ dài lớn hơn ba kí tự để tạo tài khoản
mới. Sau đó người dùng bấm đăng nhập.
45
Sau khi ấn đăng nhập thì trang chủ của ứng dụng sẽ xuất hiện.
Biểu tượng tìm kiếm để chuyển đến trang tìm kiếm. Biểu tượng tin nhắn để
chuyển đến trang gửi và nhận thông điệp. Biểu tượng cá nhân để chuyển đến trang thông
tin tài khoản. Các label hiển thị các đoạn chat trước đó.
46
Khi người dùng nhấn vào biểu tượng cá nhân thì trang thông tin tài khoản sẽ xuất
hiện.
47
Trong trang thông tin tài khoản, người dùng có thể sửa tên người dùng của bản
thân và thay ảnh đại diện sau đó nhấn nút Cập nhật để lưu thông tin. Khi người dùng
muốn thoát tài khoản thì có thể nhấn đăng xuất.
Khi nhấn vào biểu tượng tìm kiếm thì trang tìm kiếm sẽ xuất hiện.
48
Trong trang tìm kiếm, người dùng cần nhập đúng tên cần tìm để có thể tìm kiếm
thành công. Sau khi tìm kiếm thành công, người dùng có thể nhấn vào lable hiển thị
thông tin vừa tìm để chuyển đến trang Gửi và nhận thông điệp.
Trong trang Gửi và nhận thông điệp, người dùng nhập thông điệp cần gửi và nhấn
gửi. Trong trang này, hai người dùng đã được kết nối với nhau. Họ có thể trao đổi thông
tin qua lại trong thời gian thực.
49
3.1.3. Đóng gói ứng dụng di động
Bước 1:
50
Bước 3: Đợi vài phút để thu được sản phẩm ứng dụng di động:
Ta chọn: Locate
Bước 3: Đợi điện thoại quét bảo mật và nhấn mở ứng dụng luôn nếu muốn.
52
Kết luận
Kết quả đạt được:
Trong quá trình nghiên cứu và xây dựng đề tài, nhóm chúng em đã đạt được những kết
quả sau:
Phát triển ứng dụng hoàn chỉnh với nhiều chức năng như: tạo group chat, bảo mật tin
nhắn, ...
Thiết kế giao diện người dùng bắt mắt và thu hút người dùng.
53
Tài liệu tham khảo
[1]. NEOS. Thanh, Lập trình hướng đối tượng JAVA core dành cho người mới bắt đầu
học lập trình, 2017.
[4] TS. Lê Văn Phùng, Kỹ thuật phân tích và thiết kế hệ thống thông tin hướng cấu trúc,
NXB Thông tin và Truyền thông.
54
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
Giáo viên hướng dẫn
55