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

Công nghệ angular và firebase kết hợp với khai thác web trong xây dựng web âm nhạc

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 (5.3 MB, 96 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NGOẠI NGỮ - TIN HỌC TP.HCM
KHOA CƠNG NGHỆ THƠNG TIN

KHĨA LUẬN TỐT NGHIỆP

CÔNG NGHỆ ANGULAR VÀ FIREBASE
KẾT HỢP VỚI KHAI THÁC WEB TRONG
XÂY DỰNG WEB ÂM NHẠC

GIẢNG VIÊN HƯỚNG DẪN: TS. Trần Minh Thái
SINH VIÊN THỰC HIỆN:
Phùng Gia Oai – 15DH110261
Nguyễn Hồ Ngọc Phú – 15DH110172

TP. HỒ CHÍ MINH - THÁNG 7/2019


LỜI CẢM ƠN


Chúng em xin gửi lời cảm ơn sâu sắc đến thầy Trần Minh Thái, đã giúp đỡ tận
tình và tạo điều kiện cho chúng em vừa học hỏi tìm tịi và hồn thành khố luận tốt
nghiệp này. Trong suốt quá trình nghiên cứu và thực hiện, thầy đã cho chúng em những
thơng tin vơ cùng hữu ích và đưa ra nhiều hướng giải quyết khác nhau trong cùng một
vấn đề, đồng thời cho chúng em những nhận xét vô cùng quý giá để càng ngày chúng
em càng cải thiện khơng chỉ trong khố luận tốt nghiệp mà cịn kỹ năng tư duy, học hỏi
và nghiên cứu. Nhờ những chỉ dẫn của thầy, chúng em được tự quyết định và giải quyết
vấn đề nhanh hơn, dễ dàng hơn.
Bên cạnh đó, chúng em cũng gửi lời chân thành cảm ơn quý thầy cô Trường Đại
Học Ngoại Ngữ Tin Học Thành Phố Hồ Chí Minh, đặc biệt là các thầy cơ thuộc khoa


Công Nghê Thông Tin đã luôn nuôi dưỡng và phát triển kiến thức của chúng em trong
suốt quá trình theo học tại trường với những bộ môn từ nền tảng đến nâng cao. Trong
suốt quá trình ấy, với sự nhiệt tình của thầy cơ, chúng em được rèn luyện chính bản thân
mình trong việc tự duy lập trình và cũng như kinh nghiệm làm việc nhóm để chúng em
lấy đó làm nền tảng để hồn thành được khố luận tốt nghiệp này.
Và cũng khơng qn, chúng con/em/mình cũng gửi lời cảm ơn đến gia đình, các
anh chị, bạn bè đã luôn theo sát, ủng hộ và tạo động lực, giúp đỡ chúng con/em/mình
trong quá trình học tập cũng như trong cuộc sống. Sự đồng hành ấy là điều quý giá nhất
trong cuộc hành trình học tập của mỗi con người.
Thành phố Hồ Chí Minh, ngày 18 tháng 6 năm 2019
Học viên thực hiện

Phùng Gia Oai

Nguyễn Hồ Ngọc Phú


MỤC LỤC

Chương 1. GIỚI THIỆU ................................................................. 1
Giới thiệu tổng quan về Angular, Firebase, Web crawling ............................... 1
Mục tiêu đề tài....................................................................................................2
Nội dung thực hiện ............................................................................................. 3
Dự kiến kết quả ..................................................................................................3
Bố cục nội dung .................................................................................................3

Chương 2. CƠ SỞ LÝ THUYẾT ................................................... 5
Tìm hiểu framework Angular ............................................................................5
Sơ lược về framework Angular ...................................................................5
Lịch sử phát triển Angular ..........................................................................5

AngularJS và Angular .................................................................................6
Các tính năng cốt lõi....................................................................................7
Ưu điểm và nhược điểm ..............................................................................7
Tổng quan về NodeJs ......................................................................................... 8
Giới thiệu NodeJs ........................................................................................ 8
Các tính năng nổi bật ...................................................................................8
Cách thức NodeJs vận hành ......................................................................10
Tổng quan về Google Firebase ........................................................................10
Giới thiệu Google Firebase .......................................................................10
Lịch sử phát triển Google Firebase ........................................................... 11
NoSQL trong firebase ...............................................................................12
Các tính năng cơ bản của Google Firebase ...............................................13
Lợi ích từ việc sử dụng Google Firebase ..................................................16


Tìm hiểu Web Crawling ...................................................................................17
Giới thiệu Web Crawling [3].....................................................................17
Lợi ích và hạn chế của Web Crawling ...................................................... 18
Điều kiện để trích xuất thơng tin từ các trang web khác ........................... 18
Dữ liệu sau khi trích xuất nên được xử lý thế nào? ..................................19
Thư viện hỗ trợ .......................................................................................... 19

Chương 3. MÔ TẢ ỨNG DỤNG VÀ CƠ SỞ DỮ LIỆU ........... 22
Mô tả trang web TouchMusic ..........................................................................22
Mục tiêu và phạm vi trang web TouchMusic............................................22
Các chức năng trong trang web TouchMusic............................................22
User case....................................................................................................24
User flow ...................................................................................................37
Thiết kế cơ sở dữ liệu ....................................................................................... 46
Cách chuyển đổi từ dữ liệu quan hệ sang dữ liệu không quan hệ .............46

Sơ đồ cơ sở dữ liệu quan hệ ......................................................................47
Sơ đồ cơ sở dữ liệu không quan hệ ........................................................... 48

Chương 4. CÀI ĐẶT HỆ THỐNG VÀ THIẾT KẾ GIAO DIỆN50
Cài đặt môi trường phát triển trang web .......................................................... 50
NodeJs .......................................................................................................50
Node package module (NPM) ...................................................................51
Trình viết code (IDE) ................................................................................52
Kết nối với Firebase ..................................................................................52
Các bước thực hiện cài đặt ........................................................................53
Kết nối NodeJs với Angular (Phục vụ cho việc Crawling) ....................... 54
Thiết kế giao diện............................................................................................. 57
Quy định về trang web TouchMusic ......................................................... 57


Giao diện và chức năng .............................................................................59

KẾT LUẬN ................................................................................... 85
Kết quả thực hiện ............................................................................................. 85
Điểm nổi bật .....................................................................................................85
Vấn đề tồn tại ...................................................................................................85
Hướng phát triển .............................................................................................. 86

TÀI LIỆU THAM KHẢO ........................................................... 87


DANH SÁCH BẢNG
Bảng 3-1: Mô tả các thành phần trong user case ........................................................... 24
Bảng 3-2: Mô tả user case bao qt với từng vai trị người dùng .................................25
Bảng 3-3: Mơ tả user case với vai trị là người dùng bình thường ................................ 26

Bảng 3-4: Mô tả user case với vai trị thành viên TouchMusic .....................................27
Bảng 3-5: Mơ tả user case với vai trị là Admin hệ thống .............................................29
Bảng 3-6: Mơ tả user case khi quản lý bài hát với vai trị Admin .................................30
Bảng 3-7: Mơ tả user case khi quản lý album với vai trị Admin .................................31
Bảng 3-8: Mơ tả user case khi quản lý Country với vai trò Admin .............................. 32
Bảng 3-9: Mô tả user case khi quản lý Song type với vai trị Admin ........................... 33
Bảng 3-10: Mơ tả user case khi kiểm tra user đăng album với vai trị Admin ..............34
Bảng 3-11: Mơ tả user case khi kiểm tra user đăng bài hát với vai trò Admin .............35
Bảng 3-12: Mô tả user case về việc quản lý Account với vai trò Admin...................... 36
Bảng 3-13: Danh sách thành phần trong User flow ...................................................... 37
Bảng 4-1: Chức năng trang chủ đầu ..............................................................................59
Bảng 4-2: Chức năng trang chủ tiếp theo 1 ...................................................................60
Bảng 4-3: Chức năng trang chủ tiếp theo 2 ...................................................................61
Bảng 4-4: Chức năng trang chủ tiếp theo 3 ...................................................................62
Bảng 4-5: Chức năng trang chủ tiếp theo 4 ...................................................................63
Bảng 4-6: Chức năng đăng nhập ...................................................................................64
Bảng 4-7: Chức năng đăng ký ....................................................................................... 65
Bảng 4-8: Chức năng phát nhạc ....................................................................................66
Bảng 4-9: Chức năng trang home ..................................................................................68
Bảng 4-10: chức năng trang tìm kiếm ...........................................................................69
Bảng 4-11: Chức năng trang bài hát và video ............................................................... 71
Bảng 4-12: Chức năng bảng ca sĩ hoặc nhạc sĩ ............................................................. 73
Bảng 4-13: Chức năng trang thông tin người dùng ....................................................... 74
Bảng 4-14: Chức năng thay đổi ảnh đại diện ................................................................ 75
Bảng 4-15: Chức năng thêm playlist yêu thích ............................................................. 76
Bảng 4-16: Chức năng trang Admin..............................................................................77
Bảng 4-17: Chức năng trang Admin quản lý user ......................................................... 78


Bảng 4-18: Chức năng trang admin quản lý nhạc theo quốc gia...................................79

Bảng 4-19: Chức năng trang Admin quản lý ca sĩ hoặc nghệ sĩ ...................................80
Bảng 4-20: Chức năng trang Admin quản lý thể loại nhạc ...........................................81
Bảng 4-21: Chức năng Admin quản lý bài hát .............................................................. 82
Bảng 4-22: Chức năng Admin quản lý album ............................................................... 83
Bảng 4-23: Chức năng Admin quản lý việc cào dữ liệu ...............................................84


DANH SÁCH HÌNH
Hình 2-1: Request header .............................................................................................. 18
Hình 3-1: User case overview ....................................................................................... 25
Hình 3-2: Normal user Management .............................................................................26
Hình 3-3: TouchMusic Member Management .............................................................. 27
Hình 3-4: Admin Management ...................................................................................... 29
Hình 3-5: Admin Song Management.............................................................................30
Hình 3-6: Admin Album Management..........................................................................31
Hình 3-7: Admin Country Management........................................................................32
Hình 3-8: Admin Song Type Management ...................................................................33
Hình 3-9: Admin Checking User Upload Album .......................................................... 34
Hình 3-10: Admin Checking User Upload Song ........................................................... 35
Hình 3-11: Admin Account Management .....................................................................36
Hình 3-12 Luồng thao tác của Normal User .................................................................38
Hình 3-13: Luồng thao tác của TouchMusic Member ..................................................39
Hình 3-14: Luồng thao tác của Admin Management ....................................................40
Hình 3-15: Luồng thao tác của Admin Account Management......................................41
Hình 3-16: Luồng thao tác của Admin Album Management ........................................41
Hình 3-17: Luồng thao tác của Admin Song Management ...........................................42
Hình 3-18: Luồng thao tác của Admin Performer Management ...................................42
Hình 3-19: Luồng thao tác của Admin User Upload Album Management...................43
Hình 3-20: Luồng thao tác của User Upload Song Mamagement.................................44
Hình 3-21: Luồng thao tác của Admin Country Management ......................................45

Hình 3-22: Luồng thao tác của Admin Song Type Management ..................................46
Hình 3-23: Mơ hình cơ sở dữ liệu quan hệ ....................................................................47
Hình 3-24: Sơ đổ thực thể E&R cho cơ sở dữ liệu không quan hệ .............................. 48
Hình 3-25: Sơ đồ NoSQL .............................................................................................. 49
Hình 4-1: Kiểm tra cài đặt NodeJs ................................................................................50
Hình 4-2: Kiểm tra cài đặt Node Package Module........................................................ 51
Hình 4-3: Kiểm tra cài đặt Angular CLI .......................................................................52
Hình 4-4: Thơng tin kết nối với Firebase ......................................................................54


Hình 4-5: Tệp NodeJs Server.js .....................................................................................55
Hình 4-6: Kết quả khởi chạy NodeJs .............................................................................56
Hình 4-7: Logo TouchMusic ......................................................................................... 58
Hình 4-8: Thương hiệu TouchMusic .............................................................................58
Hình 4-9: Logo tổng quát để quảng báo hình ảnh ......................................................... 58
Hình 4-10:Giao diện trang chủ đầu ...............................................................................59
Hình 4-11: Giao diện trang chủ tiếp theo 1 ...................................................................60
Hình 4-12:Giao diện trang chủ tiếp theo 2 ....................................................................61
Hình 4-13: Giao diện trang chủ tiếp theo 3 ...................................................................62
Hình 4-14: Giao diện trang chủ tiếp theo 4 ...................................................................63
Hình 4-15: Form đăng nhập........................................................................................... 64
Hình 4-16: Form đăng ký .............................................................................................. 65
Hình 4-17: Trình phát nhạc ........................................................................................... 66
Hình 4-18: Trang chính .................................................................................................67
Hình 4-19: Tìm kiếm .....................................................................................................69
Hình 4-20: Bài hát và video ........................................................................................... 70
Hình 4-21: Nghệ sĩ hoặc ca sĩ ........................................................................................ 72
Hình 4-22: Thơng tin người dùng ..................................................................................73
Hình 4-23: Thay đồi ảnh đại diện người dùng .............................................................. 75
Hình 4-24: Thêm Playlist u thích ...............................................................................76

Hình 4-25: Admin trang chính....................................................................................... 77
Hình 4-26: Admin quản lý tài khoản user .....................................................................78
Hình 4-27: Admin quản lý nhạc theo quốc gia.............................................................. 79
Hình 4-28: Admin quản lý ca sĩ hoặc nghệ sĩ ............................................................... 80
Hình 4-29: Admin quản lý thể loại nhạc .......................................................................81
Hình 4-30: Admin quản lý bài hát .................................................................................82
Hình 4-31: Admin quản lý album ..................................................................................83
Hình 4-32: Admin quản lý việc cào dữ liệu ..................................................................84


Giới Thiệu

Chương 1.

GIỚI THIỆU

Giới thiệu tổng quan về Angular, Firebase, Web crawling
Trong lĩnh vực lập trình web, để có thể xây dựng nên một trang web hồn chỉnh
ln tồn tại 2 phần chính, hay cịn được gọi là 2 mảng đó là front-end và back-end.
Front-end là những thứ được xây dựng để hiển thị cho người dùng và gửi yêu cầu của
người dùng lên server, back-end là những thứ được xây dựng để đón nhận yêu cầu được
gửi từ front-end và xử lý chúng theo yêu cầu và gửi trả kết quả cho front-end để thông
báo cho người dùng. Trong khi back-end đang trong trạng thái ổn định và phát triển đều
đặn thì phía front-end đang có nhiều sự phát triển mãnh mẽ giữa các công nghệ trong
việc cải thiện hiệu suất và tính hiệu dụng để giúp người dùng có được một trải nghiệm
tốt hơn, bảo mật hơn. Trong đó, Angular [1] là một cơng nghệ phía front-end đang đang
được ưa chuộng thời điểm hiện nay. Angular là một framework có mã nguồn mở giúp
cho lập trình viên có thể tạo một trang web phía client vơ cùng nhanh và hiệu quả. Việc
Angular đang được ưa chuộng hiện nay khơng chỉ vì nó là mã nguồn mở mà là vì
Angular ln được phát triển định kỳ bởi Google với 6 tháng sẽ có một phiên bản mới

được cho ra. Vì thế, Angular là một lựa chọn đáng tin cậy trong việc xây dựng và phát
triển trang web bây giờ và cả thời gian tới.
Với xu hướng mua sắm trực tuyến đang bắt đầu gia tăng nói riêng và xu hướng
tất cả công việc được giải quyết chỉ bằng một cú nhấp nói chung, thì một hệ thống càng
ngày sẽ càng nhận được rất nhiều yêu cầu từ người dùng và từ đó sinh ra một nhu cầu
về tính truy xuất, trả về kết quả nhanh nhất có thể để phục vụ cho người dùng thì lúc
này các nhà phát triển Google đã cho ra một giải pháp là Firebase [2]. Firebase là một
công nghệ lưu trữ thời gian thực (realtime databse) hoạt động trên nền tảng đám mây
được phát triển gần đây bởi Google để giải quyết việc truy xuất nhanh cho người dùng.
Firebase được xây dựng dựa trên nền tảng cơ sở dữ liệu không quan hệ (NoSQL) và
khơng chỉ thế, Firebase cịn có thể giúp xác thực người dùng với Firebase Authenication
và kho lưu trữ dữ liệu kiểu hình ảnh, nhạc, video, ...
Trong bối cảnh càng ngày có nhiều dịch vụ mua sắm trực tuyến được mở ra để
thu hút người dùng thì việc nắm được thơng tin sản phẩm của đối thủ kinh doanh để
chọn được hướng kinh doanh tốt hơn là việc vô cùng cần thiết và quan trọng. Để làm
được điều đó, trong giới lập trình viên phát triên ra một thuật ngữ mới đó là Web
Trang 1


Giới Thiệu

Crawling [3] với ý nghĩa là cào, nạo vét, trích xuất dữ liệu từ trang web. Web Crawling
là cơng việc lấy thơng tin có chọn lọc của một trang web cụ thể. Các thông tin lấy được
là những thông tin được hiển thị cho người dùng. Việc lấy thông tin ở đây giúp dữ liệu
được đa dạng hơn và giúp người dùng nắm bắt được thông tin sản phẩm của tất cả các
trang web.
Mục tiêu đề tài
Trong thời đại hiện nay, công nghệ là thứ gần như gắn liền với mọi người, dường
như khi cơng nghệ phát triển thì cũng là lúc mọi người bắt đầu thay đổi cách sinh hoạt
cũng như cách làm việc của bản thân.

Khi họ làm việc, họ truyền thông tin cho nhau bằng email. khi họ trị chuyện, họ
có thể giao tiếp với nhau thông qua các phần mềm giao tiếp. Hơn thế, khi họ muốn tiếp
thu thêm kiến thức thì cũng có những website học tập trực tiếp. Và gần đây họ chỉ cần
ngồi một chỗ thì cũng có thể mua được một món ăn bản thân u thích mà khơng cần đi
chuyển. Và khi mọi thứ họ cần điều được đáp ứng bởi cơng nghệ thì việc họ giải trí có
lẽ cũng sẽ đa phần dùng cơng nghệ với các trị chơi, video hài hước, phim truyện và hơn
cả, điều mà chúng em cảm thấy ai cũng chọn để giải trí đó là nghe nhạc. Do vậy, chúng
em chọn việc giúp cho mọi người có một website âm nhạc mới với khả năng truy xuất
cao, tiện dụng, đơn giản.
Để làm được điều ấy, chúng em bắt tay vào việc nghiên cứu những công nghệ
mới hiện nay để áp dụng vào mục tiêu của chúng em. Trong số rất nhiều công nghệ được
phát triển với các tính năng và đặc điểm nổi bật riêng của từng công nghệ ấy.
Chúng em chọn việc xây dựng website trên nền tảng công nghệ Angular. Đây là
công nghệ được google bắt tay vào phát triển từ năm 2016 và hiện nay vẫn còn phát
triển thêm (Version hiện tại: Angular 7 ).
Bên cạnh đó chúng em chọn cho mình một cơ sở dữ liệu với tính năng truy xuất
cao đó là cơng nghệ Firebase, cơng nghệ lưu dữ liệu trên đám mây. Firebase rất phổ biến
hiện nay không những dữ liệu được lưu giữ trên cloud mà Firebase còn là 1 dạng của
NoSQL một dạng cơ sở dữ liệu với tính truy xuất nhanh và ít ràng buộc.
Ngồi ra, chúng em nghiên cứu thêm về Web crawling để cung cấp cho người
dùng những bài hát, ca sĩ nổi bật trong ngành âm nhạc như các bài hát, video được sưu
tầm từ các website âm nhạc khác.
Trang 2


Giới Thiệu

TouchMusic vừa sẽ là trang web nghe nhạc với tốc độ truy xuất cao và vừa là
thành quả nghiên cứu các công nghệ để ứng dụng chúng vào đề tài kể trên. Người dùng
sẽ được nghe nhạc, đăng tải nhạc, tạo danh sách u thích, xem video, tìm kiếm theo

nhạc, album hoặc ca sĩ
Nội dung thực hiện
Với mong muốn tạo một trang web giải trí cho người dùng. Khố luận sẽ tập
trung tìm hiểu nghiên cứu cơng nghệ Angular, Firebase, Web crawling để xây dựng
thành một trang web với chủ để âm nhạc. Người dùng có thể nghe nhạc trên trang web
và có thể tham gia tương tác, bình luận trên trang web. Hơn thế nữa, trang web sẽ tích
hợp dữ liệu truy xuất được thơng qua cơng nghệ Web Crawling để giúp người dùng có
thể một lúc xem được nhiều dữ liệu từ nhiều trang web trên cùng một trang web.
Công nghệ Angular sẽ được ứng dụng vào việc thiết kế bố cục, màu sắc, nội dung
trang web. Công nghệ Firebase sẽ được dùng để làm nơi chứa dữ liệu từ người dùng.
Công nghệ Web Crawling sẽ được sử dụng để truy xuất dữ liệu từ các trang web cùng
chủ để khác thông qua NodeJs.
Dự kiến kết quả
Với thời gian có hạn của khóa luận, việc chúng em học tập và áp dụng vào đồ án
có thể sẽ không làm được nhiều thứ. Thế nên trang web chúng em tạo ra có thể cung cấp
một số thành phần cơ bản chủ đạo của một web âm nhạc như nghe nhạc, xem video,
bình luận, tạo playlist nhạc u thích,... Ngồi ra cịn có cả cơ chế đào web khai thác
thông tin từ các trang web nhạc nổi tiếng tại Việt Nam.
Dữ liệu truy xuất được từ các trang web cùng chủ để khác là những bài hát mới
và nhận được nhiều lượt nghe nhất.
Bố cục nội dung
-

Chương 1: Giới thiệu đề tài.
Giới thiệu tổng quát về lý do thực hiện đề tài, ý tưởng và các công nghệ đang

được chú ý nhiều hiện nay cùng với xu hướng giải trí kèm nghe nhạc của người dùng
trên mạng ngày một tăng.
-


Chương 2: Cơ sở lý thuyết.

Trang 3


Giới Thiệu

Nghiên cứu về các công nghệ Angular, Firebase, NodeJs, Web crawling. Tìm hiểu về
cách hoạt động và một số quy tắc cùng những tính năng nổi bật để phục vụ cho việc xây
dựng và phát triển trang web.
-

Chương 3: Mô tả ứng dụng và cơ sở dữ liệu.

Mô tả các chức năng cơ bản trong ứng dụng và các luồng di chuyển của người dùng với
các vai trò như: người dùng bình thường, thành viên TouchMusic và admin hệ thống.
đồng thời thiết kế cơ sở dữ liệu từ mô hình SQL đến mơ hình NoSQL
-

Chương 4: Cài đặt hệ thống và thiết kế giao diện

Hướng dẫn cách cài đặt, tạo mới và khởi động môi trường xây dựng ứng dụng, cách kết
nối với Firebase, NodeJs. Bên cạnh đó, mơ tả cách thiết kế giao diện và mô tả các tính
năng trên từng trang.
-

Chương 5: Kết luận

Đúc kết kết quả thực hiện trong suốt quá trình phát triển ứng dụng. Nêu ra điểm nổi bật và các
vấn đề còn tồn đọng trong ứng dụng. Qua đó, đưa ra hướng phát triển trong tương lai

-

Chương 6: Tài liệu tham khảo

Trích xuất các tài liệu liên quan được nêu ra trong khoá luận.

Trang 4


Cơ Sở Lý Thuyết

Chương 2. CƠ SỞ LÝ THUYẾT
Tìm hiểu framework Angular
Sơ lược về framework Angular
AngularJS [1] là một Javascript Frameword được tạo ra để xây dựng các ứng
dụng web SPA (Single Page Application). Được phát triển từ năm 2009, hiện tại được
duy trì bởi Google và đã cho ra đời rất nhiều phiên bản. Đây là một Framework mã
nguồn mở hồn tồn miễn phí và được hàng ngàn các lập trình viên trên thế giới ưa
chuộng và sử dụng. Framework này được coi là công nghệ Web 2.0 phát triển khá mạnh
ở nước ngồi, và gần đây các cơng ty của Việt Nam đang chú trọng đến nó.
Để học được AngularJS thì bạn cần phải có kiến thức cơ bản về Javascript, biết
cách xử lý object, ... và nếu bạn chun sâu về Javascript thì đó là một lợi thế. Vì bản
chất của Angular là hoạt động dạng Single Page, sử dụng API để lấy dữ liệu. Làm việc
với AngularJS cũng giống như đang làm việc với Ajax, sử dụng các cơ chế bind data,
hoạt động theo mơ hình MVC và sử dụng service để tương tác với dữ liệu từ server.
Lịch sử phát triển Angular
AngularJS được phát triển từ năm 2009 bởi Misko Hevery và một người bạn của
anh là Adam Abrons. Nó chỉ được coi là một dự án mã nguồn mở và được cho ra mắt
phiên bản đầu tiên vào năm 2012.
Trong khoảng thời gian đó Misko Hevery đã tham gia vào một dự án có tên

Google Feedback (Phản hồi Google) với tư cách là một lập trình viên và làm việc bán
thời gian. Misko Hevery và 2 lập trình viên khác đã viết 17.000 dịng mã cho dự án
Google Feedback trong vòng 6 tháng. Số lượng mã ngày càng lớn và Misko Hevery
nhận thấy rằng nó càng ngày khó để sửa đổi và kiểm sốt lỗi phát sinh.
Chính vì vậy Misko Hevery đã đánh cược với người quản lý của mình rằng anh
có thể viết lại toàn bộ mã cho Google Feedback bằng cách sử dụng dự án GetAngular
của mình trong 2 tuần. Hevery đã thua cuộc thay vì 2 tuần anh đã mất 3 tuần để hồn
thành cơng việc, tuy nhiên mã của dự án đã giảm từ 17.000 dòng xuống 1.500 dòng Một con số khá đáng kể.
Nhờ sự thành công của Hevery, người quản lý của anh ấy Brad Green đã chú ý
và phát triển AngularJS. AngularJS đã thực sự tăng tốc trong thời gian đó.
Trang 5


Cơ Sở Lý Thuyết

AngularJS và Angular
Thực tế là Angular có 2 phiên bản hoàn toàn khác nhau với cách tổ chức cấu trúc
khác nhau, phiên bản 1 và phiên bản khác 1.
-

Phiên bản 1:

-

Phiên bản 1 có tên chính thức là AngularJS, hiện tại nó vẫn đang được phát triển
và hỗ trợ (LTS – Long Term Support). Năm 2018 phiên bản 1.7.x được phát hành
và hiện tại là 1.7.8

-


Phiên bản Angular1 thực sự dựa trên Javascript, các lập trình viên sẽ viết theo
mã ngơn ngữ Javascript, vì vậy có vẽ là dễ đọc dễ làm và các nhà tuyển dụng dễ
tìm được ứng viên. Nhưng về mặt hiệu năng, nó ln bị cộng đồng lập trình viên
đem ra so sánh với ReactJS.

-

Phiên bản 2,4,5,6

-

Bắt đầu từ phiên bản 2 nó có tên chính thức là Angular. Tháng 12 năm 2018 phiên
bản 7 chính thức được tung ra.

-

Angular phiên bản 2 trở lên có tư duy thay đổi hồn tồn so với Angular1. Sự
thay đổi này được tạo ra với tham vọng sẽ giúp Angular đánh bại ReactJS.

-

Một số cải tiến của Angular theo tư duy mới:

-

Component:

-

Ý tưởng chủ đạo của Angular(4) mới là Component.


-

Component khơng có gì xa lạ trong ReactJS, nhưng Component là khái niệm mới
mà Angular1(AngularJS) khơng có. Component được Angular áp dụng để tạo
cấu trúc code rỏ ràng và có khả năng tái sử dụng lại các component có sãn.

-

Typescript:

-

Typescript được Microsoft phát triển để viết Javascript mang phong cách theo
tính hướng đối tượng (Object-Oriented). Bản thân Javascript nguyên thủy được
thiết kế rất đơn giản và theo hướng chức năng ( Functional programming) nên sẽ
khơng có tính năng kế thừa, đa hình,...
Typescript [4] mang một số tính năng cho Javascript như: kế thừa, kiểu dữ liệu,

hàm khởi tạo, ... Có thể nói, Typescript làm cho Javascript mang phong cách rất “Java”.
Về mặt bản chất nhiều cú pháp của Typescript khơng được trình duyệt hiểu, vì vậy nó
khơng thể chạy trực tiếp trên trình duyệt, nó cần 1 bước đó là biên dịch (compile) mã
Trang 6


Cơ Sở Lý Thuyết

Typescript thành Javascript thông thường được biết tới như là Language specification (
Đặc tả ngôn ngữ ).
Các tính năng cốt lõi

Sau đây là các tính năng cốt lõi:
-

Data-Binding: Tự đồng bộ dữ liệu giữa Model và View.

-

Scope: Đây là những đối tượng kết nối giữa Controller và View.

-

Controller: Đây là những hàm Javascript xử lý kết hợp với bộ điều kiển Scope.

-

Service: Sử dụng các API để thao tác với BD.

-

Filers: Bộ lọc lọc các thành phần của 1 mảng trả về mảng mới.

-

Directives: Đánh dấu vào các yếu tố của DOM, nghĩ là sẻ tạo ra các thẻ HTML
tùy chỉnh.

-

Templates: Hiển thị thông tin từ Controller, đây là một thành phần của View.


-

Routing: Chuyển đổi giữa các action trong Controller.

-

MVC: Mơ hình chia thành chức năng riêng biệt Model, View , Controler. Đây là
một mơ hình khá hay nhưng trong Angular nó được chế biến lại một chút gần
giống với MVVM ( Model View View Model ).

-

Deep Linking: Liên kết sâu, cho phép bạn mã hóa trạng thái của ứng dụng trong
các URL để nó có thể đánh dấu được với cơng cụ tìm kiếm.

-

Dependency Injection: Angular giúp các nhà phát triển tạo ứng dụng dễ dàng
hơn, dễ phát triển, hiểu và thử nghiệm dễ dàng
Ưu điểm và nhược điểm

-

Ưu điểm:
Angular cho phép tạo ra các ứng dụng một cách đơn giản, code sạch (clean code).
Angular sử dụng data binding giống .NET với tính năng liên kết với HTML nên
giúp người dùng cảm thấy dễ chịu.
Angular đang ở giai đoạn thử nghiệm.
Angular có thể chạy trên hâu hết các trình duyệt điện thoại thơng minh.


-

Nhược điểm:
Khơng an tồn: được phát triển từ Javascript, phía máy chủ phải thường xuyên
xác nhận quyền để hệ thống chạy trơn chu.

Trang 7


Cơ Sở Lý Thuyết

Phụ thuộc: Nếu người dùng vô hiệu hóa Javascript thì website sẽ khơng hoạt
động.
Tổng quan về NodeJs
Giới thiệu NodeJs
Javascript khơng chỉ là ngơn ngữ dành cho phía Client – frontend mà trong giai
đoạn phát triễn gần đây Javascript đã được phát triễn để có thể chạy được trên phía
Server – backend và điều đó đã được minh hoạ qua NodeJs.
NodeJs [5] là một nền tảng chạy trên mơi trường V8 Javascript runtime - một
trình thơng dịch Javascript cực nhanh chạy trên trình duyệt Chrome. Bên cạnh đó, nó
cịn là một mã nguồn mở được sử dụng rộng bởi hàng ngàn lập trình viên trên tồn thế
giới. NodeJs có thể chạy trên nhiều nền tảng hệ điều hành khác nhau từ Window cho tới
Linux, OS X nên đó cũng là một lợi thế. NodeJs cung cấp các thư viện phong phú ở
dạng Javascript Module khác nhau giúp đơn giản hóa việc lập trình và giảm thời gian ở
mức thấp nhất.
Các tính năng nổi bật
-

Realtime (thời gian thực: Khi nói đến NodeJs thì phải nghĩ tới vấn đề Realtime.
Realtime ở đây chính là xử lý giao tiếp từ client tới máy chủ theo thời gian thực.

Giống như khi bạn lướt Facebook thì mỗi khi bạn comment hay like một topic
nào đó thì ngay lập tức chủ topic và những người đã comment trên đó sẽ nhận
được thơng báo là bạn đã comment.

-

Bất đồng bộ, đơn luồng:
Hãy bắt đầu với khái niệm phân biệt giữa đồng bộ (sync) với không đồng bộ

(async). Nói nơm na việc xử lý đồng bộ có nghĩa là code sẽ chạy tuần tự từ trên xuống
dưới, code nào viết trước sẽ chạy trước, code viết sau sẽ chạy sau, ngược lại, xử lí bất
đồng bộ là những xử lý mà đoạn code ở dưới vẫn có thể được xử lý tiếp tục trong khi
những đoạn code trên vẫn chưa xử lý xong và trả về kết quả.
Tuy nhiên, cách xử lý của Javascript về bất đồng bộ không giống như cách suy
nghĩ về Ajax hay cách hoạt động của hàm setimeout(). Mà đây là một cách xử lý mới,
lưu ý Javascript là một ngôn ngử xử lý đơn luồng (single thread), tức là nó chỉ có thể xử
lý một tác vụ trong một thời điểm nhất định. Cách xử lý của Javascript về bất đồng bộ
có thể được minh hoạ như thế này:
Trang 8


Cơ Sở Lý Thuyết

Giả sử Mr.A là nhân viên tổng đài trực điện thoại, anh ta sẽ nhận các cuộc điện
thoại và trả lời những yêu cầu từ đầu dây bên kia. Tuy nhiên, trong cùng một thời điểm
Mr.A chỉ có thể nhận và giải quyết 1 cuộc điện thoại, vì thế nếu có 2 cuộc gọi trong
cùng một thời điểm thì Mr.A chỉ có thể nhận và xử lý 1 cuộc gọi xong thì mới có thể
giải quyết tiếp cuộc gọi cịn lại, tức là sẽ có 1 cuộc gọi sẽ chuyển sang trạng thái bận,
ngắt kết nói, khơng thực hiện. Tình huống này được gọi là đơn luồng (single thread).
Nhưng thực tế có rất là nhiều nhân viên trực điện thoại như Mr.A để xử lý các cuộc gọi

trong cùng một lúc để tránh việc không thực hiện xử lý cuộc gọi. Tình huống này được
gọi là đa luồng (multi thread).
Như ta đã nói Javascript là ngơn ngữ xử lý đơn luồng, vậy làm sao Js có thể xử
lý được nhiều request trong cùng một lúc mà không cần phải đợi. Quay lại ví dụ Mr.A,
để xử lý được nhiều cuộc gọi cùng một thời điểm thì Mr.A đã đưa ra một hướng giải
quyết khác, đó là tất cả sẽ chuyển từ việc gọi điện sang việc nhắn tin để yêu cầu. Lúc
này, Mr.A sẽ có thể nhận được nhiều tin nhắn yêu cầu cùng một lúc và xếp các yêu cầu
thành hàng đợi, xử lý từng tin nhắn và trả lời yêu cầu của từng người. Người nhắn tin sẽ
chỉ phải trong giai đoạn chờ nhận tin trả lời chứ khơng cịn sợ u cầu của bản thân
không được thực hiện. Đối với Javascript cũng vậy, khi nhận được các request gọi hàm,
bộ máy xử lý sẽ biến các request trở thành các message, xếp thành hàng đợi và giải quyết
từng cái một, sau đó trả về giá trị cho từng request. Thực tế, bộ máy xử lý của Javascript
gồm 3 bộ phận:
Message queue: hàng đợi tin nhắn. Tiếp nhận các request, xếp chúng vào hàng
đợi và mỗi request sẽ tương ứng với 1 message
Event-loop: vòng lặp sự kiện. Làm nhiệm vụ điều phối việc lấy message trong
Message queue. Lấy Message ra khỏi queue để xử lý và đợi đến khi nào xử lý xong mới
lấy Message khác.
Call-stack: là 1 ngăn xếp quản lí việc thực thi hàm và gọi lồng hàm (nested
function), tức là: Với mỗi hàm vừa lấy ra khỏi queue để đem ra xử lí, thì nó sẽ tương
ứng với 1 frame ở trong call-stack, nếu bên trong hàm này có gọi tới nhiều hàm con nữa,
thì những hàm con này sẽ được thêm tiếp vào call-stack dưới dạng 1 frame mới của
stack. Và Javascript sẽ lần lượt xử lí call-stack này theo dạng first-in last-out (xử lí dạng
stack), cho đến khi stack rỗng thì coi như message đó đã được xử lí xong.
Trang 9


Cơ Sở Lý Thuyết

Vậy, thật ra việc xử lý bất đồng bộ của Javascript là cơ chế quản lý và xử lý các

message queue ẩn bên trong. Hàm sẽ không được kích hoạt ngay khi gọi mà phải đợi
trong Message queue. Đấy là khái niệm bất đồng bộ.
-

Không đệm: NodeJs khơng đệm bất kì một dữ liệu nào và các ứng dụng này chủ
yếu là đầu ra dữ liệu.

-

Có giấy phép: NodeJs đã được cấp giấy phép bởi MIT License.

-

Chạy rất nhanh: NodeJs được xây dựng dựa vào nền tảng V8 Javascript Engine
nên việc thực thi chương trình rất nhanh.

-

NodeJs được coi như là một nền tảng, không phải một framework.

-

NodeJs khơng hỗ trợ đa luồng, nó là một máy chủ đơn luồng.
Cách thức NodeJs vận hành

-

NodeJs có mơ hình thực thi theo single-thread, non-blocking, event-driven:
Non-blocking: đối với những chương trình phần mềm khác một thao tác phía


server cần phải được hồn thành xong thì mới được xử lý thao tác tiếp theo. Điều này
dẫn đến tốn thời gian khi các thao tác của người dùng khi tương tác với server phải chờ
đợi để được giải quyết. thì với NodeJs giải quyết vấn đề ấy bằng việc không chặn các
thao tác. Điều này có nghĩa là việc thực hiện chương trình vẫn được tiếp tục trong khi
thao tác phia server đang làm việc.
Các tiếp cận non-blocking cịn có thể được gọi là lập trình bất đồng bộ (Async).
Event-driven mơ tả các hoạt động được sắp xếp như thế nào khi đi vào xử lý. Ví dụ về
cách vận hành của Mr.A phía trên là một Event-driven.
Single-thread nghĩa là chỉ có một luồng thực hiện trong mỗi quy trình. Điều này
làm đơn giản hố q trình phát triển và làm cho các chương trình trở nên dễ hiểu hơn.
Nó loại bỏ khả năng cho một loạt các vấn đề về đồng bộ.
Tổng quan về Google Firebase
Giới thiệu Google Firebase
Firebase [2] là một nền tảng ứng dụng di động và web với các công cụ và hạ
tầng được thiết kế để giúp các lập trình viên xây dựng ứng dụng chất lượng cao. Nói
ngắn gọn, thay vì họ trực tiếp cung cấp ứng dụng, họ cung cấp các dịch vụ nền tảng cho
các lập trình viên sử dụng cũng như hỗ trợ tối ưu hóa ứng dụng cá nhân. Với dịch vụ
chất lượng cao đi kèm với mức giá phải chăng, Firebase đã và đang là những sự lựa
Trang 10


Cơ Sở Lý Thuyết

chọn hàng đầu của các lập trình viên, các công ty khởi nghiệp hay là các công ty lớn
khác để xây dựng các tính năng, chương trình mới cũng như chuyển đổi các dịch vụ
trước đây sang Firebase. Sử dụng Firebase thì sẽ hưởng được những lợi ích sau:
-

Xây dựng ứng dụng nhanh chóng mà khơng tốn thời gian, nhân lực để quản lý hệ
thống và cơ sở hạ tầng phí sau: Firebase cung cấp cho bạn tính năng như phân

tích, cơ sở dữ liệu, báo cáo hoạt động và báo cáo sự cố lỗi để bạn có thể dễ dàng
phát triển, định hướng ứng dụng của bản thân và người sử dụng nhằm đem lại
các trải nghiệm tốt nhất cho họ.

-

Uy tín chất lượng đảm bảo từ Google: Firebase được Google hỗ trợ và cung cấp
trên nền tảng phần cứng với quy mô rộng khắp thế giới, được các tập đoàn lớn
và các ứng dụng với triệu lượt sử dụng từ người dùng.

-

Quản lý cấu hình và trải nghiệm các ứng dụng của Firebase tập trung trong một
giao diện webside đơn giản, các ứng dụng này hoạt động độc lập nhưng liên kết
dữ liệu phân tích chặt chẽ.
Lịch sử phát triển Google Firebase
Firebase tiền thân trước đây là Evolve, là một start up được thành lập vào năm

2011 bởi Andrew Lee và James Tamplin. Ban đầu, Evolve chỉ cung cấp cơ sở dữ liệu
để các lập trình viên thiết kế các ứng dụng chat. Tuy nhiên họ nhanh chóng nhận ra tìm
năng sản phẩm của bản thân khi nhận thấy các khách hàng không sử dụng CSDL để làm
ứng dụng chat, mà thay vào đó để lưu các thông tin như game progress. Bộ đôi Lee và
Tamplin quyết định tách mảng realtime ra để thành lập một cơng ty độc lập – chính là
Firebase - vào tháng 4 năm 2012. Sau nhiều lần huy động vốn và gặt hái được nhiều
thành công nổi bật, Firebase đã được Google chú ý. Vào tháng 10 năm 2014, Firebase
chính thức gia nhập gia đình Google.
Cả Google và Firebase đều như hổ mọc thêm cách. Firebase có điều kiện để phát
triển thần tốc, mở rộng số lượng các dịch vụ con, cịn Google có được một đội ngũ nhân
lực chất lượng cao, năng động, cũng như cơ sở hạ tầng và sự hiểu quả mà các dịch vụ
của Firebase mang lại, mà không xây dựng lại từ đầu. Hiện tại, Google đã chuyển các

dịch vụ nền tảng hổ trợ các lập trình viên bên ngồi về cho Firebase quản lí, chẳng hản
như Clouse Messaging, AbMob và Analytics.

Trang 11


Cơ Sở Lý Thuyết

NoSQL trong firebase
NoSQL [6] đang dần nổi lên như một thế lực trong giới lập trình. Người người
bắt đầu dần chuyển sang NoSQL. MEAN stack (MongoDB, Express, AngularJS,
NodeJs) đang dần lấn lướt thay thế cho LAMP stack (Linux, Apache,
MySQL,PHP/Python) đã lỗi thời.
Nhắc lại một chút về database (DB) là một cơ sở dữ liệu gồm các bảng, cột, hằng
và SQL không phải là DB, cũng k phải là DBMS. Nó là viết tắt của Structure Query
Language (Ngơn ngữ truy vấn cấu trúc). Ngôn ngữ này được truy vấn trên nền một
RDBMS (Hệ quản trị cơ sở dữ liệu quan hệ). Đây là kiến thức đã được học trong môn
‘Cơ sở dữ liệu’.
RDBMS (MySQL, Oracal, Microsoft SQL Server,.. ) được sữ dụng rất rộng rãi
vì những lý do sau:
-

Tính ACID (nguyên tử, nhất quán, độc lập, bền vững) của một giao tác được đảm
bảo.

-

Với database chuẩn 3, dữ liệu được đảm bảo đồng nhất và tồn vẹn.

-


Có driver hỗ trợ cho rất nhiều ngơn ngữ: C#, java, PHP.

-

Có số lượng người lập trình viên biết SQL rất đơng đảo.

-

Nhưng đâu đó vẫn có những mặt hạn chế như

-

Việc thêm xóa dữ liệu rất phức tạp, đơi khi kéo theo một số thay đổi trong DB.

-

RDBMS được thiết kế chạy trên một máy chủ. Khi muốn mở rộng, nó khó chạy
trên nhiều máy.

-

Truy xuất dữ liệu sẽ chậm khi phải join nhiều bảng để lấy dữ liệu. ( đây là lý do
tại sao phải sử dụng ‘giảm chuẩn’ để tăng năng xuất )

-

Để giải quyết được những khuyết điểm trên thì từ đó NoSQL Databse được ra
đời.


-

Dữ liệu NoSQL DB được lưu dưới dạng document, object. Truy vấn dễ dàng và
nhanh chóng.

-

NoSQL có thể dễ dàng làm việc với dữ liệu dạng khơng có cấu trúc.

-

Việc thêm xóa dữ liệu rất dễ dàng và nhanh gọn.

-

Có khả năng mở rộng nên có thể chạy trên nhiều máy chủ dễ dàng.

Trang 12


Cơ Sở Lý Thuyết

NoSQL bỏ qua tính tồn vẹn của dữ liệu và các transaction để đổi lấy tốc độ và
khả năng mở rộng. Với những ưu điểm trên thì NoSQL đang được sử dụng nhiều trong
các dự án Big Data, Real-time.
Hiện tại trên thị trường có khá nhiều NoSQL Database Managerment System:
MongoDB, Neo4j, Firebase Realtime, FireStore,... Ta có thể chia NoSQL thành 4 loại:
-

Key-Value Databse


-

Document Database

-

Column-Family Database

-

Graph Databse
Mỗi loại đều có những ưu nhược khác nhau tùy vào dự án mà ta lựa chọn để sử

dụng sao cho phù hợp.
Ở đây Firebase đã sử dụng cã 2 loại đó là Key-Value Databse cho Firebase
Realtime và Document Databse cho Firestore. Nhưng vẫn chung mục đích là lấy nhanh
tốc độ và truy xuất nhanh dữ liệu.
-

Key-value Database – trong Firebase Realtime: Dữ liệu được lưu trữ trong
database dưới dạng key-value. Để truy vấn dữ liệu trong database, ta dựa vào key
để lấy value ra. Các database dạng này có tốc độ truy xuấy rất nhanh.

-

Document Database: Mỗi object sẽ được lưu trữ trong database dưới dạng một
document. Dữ liệu sẽ được lưu trữ dưới dạng JSON dưới database. Database dạng
này có tốc độ truy xuất rất nhanh và có thể thực hiện các câu truy vấn phức tạp,
dễ mở rộng.

Các tính năng cơ bản của Google Firebase

-

Realtime Database – Cơ sở dữ liệu thời gian thực
Firebase lưu trữ dữ liệu database dưới dạng JSON và thực hiện đồng bộ database

tới tất cả các client theo thời gian thực. Các dữ liệu được lưu trữ trong hệ thống cơ sở
dữ liệu NoSQL và được đặt trên nền tảng máy chủ Cloud, dữ liệu được ghi và đọc với
thời gian thấp nhất được tính bằng mili giây. Cụ thể hơn là bạn có thể xây dựng được
client đa nền tảng (cross-platfrom client) và tất cả các client này sẽ cùng sử dụng chung
1 database đến từ Firestore và có thể tự động cập nhật mỗi khi dữ liệu trong database
được thêm mới hoặc sửa đổi. Ngồi ra Firebase cịn cho phép bạn phân quyền một cách
đơn giản bằng cú pháp tương tự như Javascript.
Trang 13


Cơ Sở Lý Thuyết

Realtime database hỗ trợ: Android, IOS, Aeb, C++, Unity, và cả Xamarin. Khi
ứng dụng của bạn muốn phát triển, bạn không cần lo lắng về việc nâng cấp máy chủ vì
Firebase sẽ xử lý việc tự động cho bạn. Các máy chủ của Firebase quản lý hàng triệu
lượt kết nối đồng thời và hàng tỉ lượt truy cập mỗi tháng.
-

Firebase Authentication – Hệ thống xác thực của Firebase
Với Firebase bạn có thể dễ dàng xác thực người dùng từ ứng dụng của bạn trên Android,

iOs và Javascript SDKs chỉ với một đoạn mã. Các ứng dụng sử dụng chức năng xác thực của
Firebase có thể giải quyết được vấn đề khi người dùng đăng nhập, nó sẽ tiết kiệm thời gian và

rất nhiều vấn đề phức tạp khác về phần backend. Hơn nửa bạn có thể tích hợp xác thực người
dùng với các chức năng backend đã có sẵn sử dụng custom auth tokens.
Firebase cung cấp một số phương pháp Authenticate cho ứng dụng của bạn như:

-

-

Email & Password

-

Phone numbers

-

Google

-

Facebook

-

Twitter

-

Xác thực nặc danh


Firebase Hosting
Phát triển ứng dụng web của bạn trong thời gian ngắn với các Hosting tĩnh đã

được cung cấp sẵn. Đơn giản hóa lưu trữ web của bạn với các công cụ được thực hiện
cụ thể cho các ứng dụng web hiện đại. Khi bạn tải lên nội dung web, Firebase sẽ tự động
đẫy lên CDN toàn cầu và cung cấp chứng chỉ SSL miễn phí để người dùng ứng dụng có
được trải nghiệm an toàn, đáng tin cậy, độ trễ thấp.
Triển khai siêu tốc: Việc triển khai sử dụng các cơng cụ dịng lệnh Firebase và
có thể quay trở lại với phiên bản trước chỉ với một cú click chuột. Tất cả các ứng dụng
sẽ có đường dẫn mặc định ở sau firebaseapp.com và nếu trả phí thì có thể triển khai một
tên miền tùy chỉnh.

Trang 14


Cơ Sở Lý Thuyết

-

Firebase Cloud Messaging
Google Cloud Messaging, dịch vụ Cloud-to-device push message nổi tiếng nhất

thế giới, đang tích hợp với Firebase và đổi tên thành Firebase Cloud Messaging
(FCM).FCM không có giới hạn và hồn tồn miễn phí. Đây chính là tính năng khởi thuỷ
của Firebase, giúp xây dựng ứng dụng chat – trị chuyện. Giờ đây nó cho phép thông
báo trên nhiều thiết bị như android, iOs hay Web.
Bạn có thể gửi thơng báo (tối da 2KB) hay tin nhắn (giới hạn 4KB) với độ tin cậy
cao và được tối ưu cho dung lượng pin.
-


Cloud Firestore
Lưu trữ và đồng bộ dữ liệu giữa người dùng và thiết bị - ở quy mơ tồn cầu – sử

dụng cơ sở dữ liệu noSQL được lưu trữ bên hạ tầng Cloud. Cloud Firestore cung cấp
cho bạn tính năng đồng bộ hóa trực tuyến và ngoại tuyến cũng với các truy vấn dữ liệu
hiệu quả. Tích hợp với các sản phẩm Firebase khác cho phép bạn xây dựng các ứng dụng
thực sự ngay cả khi kết nối internet bị gián đoạn.
-

Cloud Storage
Firebase ra mắt tính năng Firebase Storage để giúp lập trình viên upload và

download file dễ dàng. Lưu trữ và chia sẻ nội dung do người dùng tạo ra như hình ảnh,
âm thanh và video với bộ nhớ khổng lồ và cho phép Google Cloud truy cập file dễ dàng.
Các Firebasse SDK cho Cloud Storage thêm tính năng bảo mật của Google để tải lên và
tải tệp cho các ứng dụng Firebase của bạn, cịn có logic nâng cao có thể dễ dàng xữ lý
bất kể chất lượng mạng kém.
-

Test Lab và Crash Reporting
Không ai muốn ứng dụng crash, để doanh nghiệp bị mất tín nhiệm. Firebase Crash

Reporting là cơng cụ báo cáo crash có khả năng ưu tiên, hành động nhanh giúp bạn
chuẩn đoán và xử lý ngay các vấn đề của ứng dụng iOs và Android. Crash Reposting
cịn có thể kết nối đến nhóm Audiences trong Firebasse Analytics, tư đó bạn có thể biết
được người dùng bị crash đang dùng thiết bị nào, khu vực địa lý nào,...
Cloud Test Lab giờ đây đã trở thành Firebase Test Lab for Android. Test Lap
giúp bạn xác định vấn đề của ứng dụng trước khi đến tay người dùng. Test Lab cho phép
bạn chạy thử ứng dụng ( tự động hoặc tùy chỉnh ) trên thiết bị thật do trung tâm sữ liệu
Google xử lý. Sử dụng Firebase Test Lab trong suốt vòng đời phát triển của ưng dụng

Trang 15


Cơ Sở Lý Thuyết

để khám phá lỗi và sự không nhất quán để bạn có thể cung cấp một trải nghiệm tuyệt
vời trên nhiều thiết bị.
Lợi ích từ việc sử dụng Google Firebase
-

Triển khai ứng dụng cực nhanh:
Với Firebase bạn có thể giảm bớt rất nhiều thời gian cho việc viết các dòng code

để quản lý và đồng bộ cơ sở dữ liệu, mọi việc sẽ diễn ra hoàn toàn tự động với các API
của Firebase. Khơng chỉ có vậy Firebase còn hỗ trợ đa nền tảng nên bạn sẽ càng đỡ mất
thời gian rất nhiều khi ứng dụng bạn muốn xây dựng là ứng dụng đa nền tảng.
Không chỉ nhanh chóng trong việc xây dựng database, Google Firebase cịn giúp
ta đơn giản hóa q trình đăng kí và đăng nhập vào ứng dụng bằng các sử dụng hệ thông
xác thực do chính Firebasse cung cấp.
-

Bảo mật
Firebase hoạt động dựa trên nền tảng Cloud và thực hiện kết nối thông qua giao

thức SSL, chính vì vậy bạn sẽ bớt lo lắng rất nhiều về việc bảo mật của dữ liệu cũng như
đường truyền giữa client và server. Khơng chỉ có vậy, việc cho phép bạn phân quyền
người dùng database bằng cú pháp Javascript cũng nâng cao hơn nhiều độ bảo mật cho
ứng dụng của bạn, bởi chỉ những user mà bạn cho phép mới có thể có quyền chỉnh sửa
cơ sở dữ liệu.
-


Tính linh hoạt khả năng mở rộng
Sử dụng Firebase sẽ giúp bạn dễ dàng hơn rất nhiều mỗi khi cần nâng cấp hay

mở rộng dịch vụ. Ngoài ra Firebase còn cho phép bạn tự xây dựng sever của riêng mình
để bạn có thể thuận tiện hơn trong q trình quản lý.
Việc Firebase sử dụng NoSQL, giúp cho database của bạn sẽ khơng bị bó buộc
trong các bảng và các trường mà bạn có thể tùy ý xây dựng database theo cấu trúc của
riêng bạn.
-

Sự ổn định
Firebase hoạt động dựa trên nền tảng Cloud đến từ Google vì vậy hầu như bạn

không bao giờ phải lo lắng về việc sập server, tấn công mạng như DDOS, tốc độ kết nối
lúc nhanh lúc chậm,... Hơn nửa nhờ hoạt động trên nền tảng Cloud nên việc nâng cấp,
bảo trì server cũng diễn ra rất đơn giản mà không cần phải dừng server để nâng cấp như
truyền thống.
Trang 16


×