Nói một cách đơn giản, Firebase là một dịch vụ cơ sở dữ liệu bên ngoài. Họ tự định nghĩa mình là:
“Một tập hợp các nền tảng phát triển ứng dụng và dịch vụ điện toán đám mây back-end do Google cung cấp” để biết thêm thông tin, hãy kiểm tra tại đây: https://firebase.google.com/
Bên cạnh các dịch vụ cơ sở dữ liệu, họ cũng cung cấp các dịch vụ xác thực và tích hợp cho các ứng dụng khác nhau. Các ứng dụng và ngôn ngữ lập trình được hỗ trợ là: Flutter, Dart, C++, Android, IOS, JavaScript , Unity engines và Java.
Tại sao tất cả các vấn đề này? Bởi vì chúng tôi đã sử dụng Firebase trong quá trình phát triển ứng dụng của mình. Không chỉ vậy mà chúng tôi còn sử dụng dịch vụ phổ biến nhất: đó là dịch vụ cơ sở dữ liệu.
Chúng tôi có thể hỏi, tại sao lại sử dụng Firebase ? Căn cứ hỏa lực thật dễ dàng . Khi thực hiện bất kỳ loại dự án phát triển nào sẽ yêu cầu bạn lưu dữ liệu người dùng ở một số biểu mẫu, thì bạn sẽ cần có cơ sở dữ liệu. Điều này có thể là để lưu trữ dữ liệu người dùng để phân tích sau này, sửa đổi dữ liệu, bảo vệ dữ liệu, khôi phục dữ liệu, v.v. Điều này cũng áp dụng cho các công ty, cá nhân và tổ chức, thậm chí cho nhiều nhóm hơn.
Bây giờ chúng ta đã biết tại sao chúng ta sử dụng cơ sở dữ liệu, chúng ta phải đặt câu hỏi tiếp theo. Loại cơ sở dữ liệu nào tốt hơn cho chúng tôi?
Hãy để chúng tôi khám phá những khác biệt này. Trong khi chúng tôi làm điều đó, hãy thử đoán xem Firebase thuộc loại cơ sở dữ liệu nào;) .
Cơ sở dữ liệu tập trung : Đây là khi cơ sở dữ liệu đang được sử dụng cho ứng dụng được lưu trữ ở nơi mà những người sử dụng nó có quyền truy cập vật lý trực tiếp. Họ cũng có thể chỉnh sửa, cải thiện, cập nhật và xây dựng lại cơ sở dữ liệu theo bất kỳ cách nào họ muốn. Về cơ bản, bạn có toàn quyền sở hữu và khả năng chỉnh sửa cơ sở dữ liệu theo mọi cách vật lý, nội bộ và về cơ sở hạ tầng kỹ thuật số.
Cơ sở dữ liệu phi tập trung : Điều này hoàn toàn trái ngược với cơ sở dữ liệu tập trung. Chúng là cơ sở dữ liệu dựa trên web3. Chúng là cơ sở dữ liệu nơi các thiết bị lưu trữ được trải rộng trên các thiết bị máy tính khác nhau. Chỉ các tổ chức cụ thể mới có thể tùy chỉnh và cải thiện chức năng nội bộ của cơ sở dữ liệu. trường hợp sử dụng của họ bị hạn chế. Chúng chủ yếu được tạo cho các ứng dụng web3, mã thông báo và để lưu trữ các sản phẩm web3 khác.
Để biết thêm thông tin về cơ sở dữ liệu web3 khám phá chúng đầy đủ hơn, hãy kiểm tra tại đây: https://www.makeuseof.com/what-is-web3-storage-how-does-it-work/
DBaaS : Loại cơ sở dữ liệu này thường được gọi là “không có máy chủ”. Điều này là do với loại cơ sở dữ liệu này, tương tự như cơ sở dữ liệu tập trung, bạn không giữ cơ sở dữ liệu cục bộ gần bạn. Cơ sở dữ liệu được lưu trữ thông qua một công ty bên thứ 3 và họ cho phép bạn tùy chỉnh cơ sở hạ tầng kỹ thuật số nhất định của cơ sở dữ liệu của mình nhưng không có gì khác. Điểm bán hàng chính của cơ sở dữ liệu này là hiệu quả chi phí. Thay vì xuất quỹ để tạo cơ sở dữ liệu tập trung của riêng bạn, thay vào đó, bạn chọn không tìm nguồn nỗ lực. Ai đó làm công việc xây dựng bẩn thỉu và bạn có thể thuê họ để sử dụng các dịch vụ cơ sở dữ liệu của họ. Bạn nhận được các chức năng khác nhau cho các mức thanh toán khác nhau.
Tôi đã chọn sử dụng DBaaS. Firebase là một DBaaS. Tôi đã chọn nó vì bản chất hiệu quả về chi phí của mô hình cơ sở dữ liệu này.
Tôi đang làm một ứng dụng. Một trong những chức năng mà ứng dụng có là khả năng đăng ký, đăng nhập và đăng xuất người dùng. Như bạn có thể thấy trong hình trên, tôi đã tạo tên người dùng thử nghiệm để đăng ký và mật khẩu thử nghiệm. Sau khi tôi nhấn nút “đăng ký”, ứng dụng sẽ gửi thông tin đến cơ sở dữ liệu liên quan của tôi. Cơ sở dữ liệu đang được lưu trữ trong Firebase. Khi thử đăng ký, tôi vẫn ở trên cùng một trang ứng dụng và không có gì thay đổi. Sau khi kiểm tra người dùng trong Firebase của tôi, không có người dùng mới nào được đăng ký vào thời điểm đó. Điều này có nghĩa là người dùng của tôi chưa được đăng ký.
Chúng tôi cần ứng dụng của mình để nhận ra người dùng mới. Ở giai đoạn này, nhà phát triển sẽ xem xét mã của họ và có thể xem xét Giao diện xử lý ứng dụng (API) cho Firebase và cách họ gọi mã đó trong mã của mình. Họ cũng sẽ xem xét các biến xác định người dùng để đảm bảo rằng nó được xác định đúng và hoạt động tốt. Họ cũng có thể kiểm tra xem có cần cập nhật bất kỳ thứ gì cản trở hoặc tương tác với kết nối tới cơ sở dữ liệu hay không, chẳng hạn như các thư viện được sử dụng hoặc chính liên kết API Firebase. Người ta có thể thực hiện tất cả các bước này hoặc nhiều hơn nữa để tìm giải pháp cho cơ sở dữ liệu bỏ qua các cuộc gọi của chúng tôi. Có một vấn đề.
Không ai trong số này áp dụng cho tôi . Tại sao cái này rất?
Lý do tôi không phải thực hiện bất kỳ thực hành sửa lỗi tiêu chuẩn nào là vì trước lần thử mới này một thời gian ngắn, tôi đã có thể đăng ký người dùng mới vào cơ sở dữ liệu. Trong vòng một tuần, điều này đột ngột dừng lại. Không thay đổi bất kỳ mã nào của tôi, quy trình hoạt động trước đây không còn hoạt động nữa. Điều này khiến tôi vô cùng bối rối và tôi đã nhiều lần thay thế liên kết cuộc gọi API của mình và đặt nó vào các khu vực khác nhau. Tôi đã tổ chức các cuộc gọi tham chiếu của mình cho các thư viện được sử dụng và các cuộc gọi tệp khác nhau của tôi. Tôi thậm chí còn lên mạng để hỏi xem dịch vụ cơ sở dữ liệu của Firebase có bị ngừng hoạt động không. Đây không phải là trường hợp. Khi đó tôi chuẩn bị bắt đầu thực hành sửa lỗi tiêu chuẩn….. Sau đó, cuối cùng tôi đã tìm ra giải pháp ! nó luôn ở trong email của tôi.
Vâng, email của tôi luôn có giải pháp! Khi kiểm tra email của mình sau nhiều ngày trì trệ về vấn đề này, tôi đã tìm thấy một email thông báo từ Firebase. Firebase thông báo cho tôi rằng quyền truy cập cơ sở dữ liệu của tôi đã bị cắt. Điều này là do trong quá trình thiết lập cơ sở dữ liệu Firebase, tôi đã thiết lập quyền truy cập cơ sở dữ liệu của mình để bị cắt vào một ngày nhất định vì mục đích bảo mật. Tôi đã quên quy tắc này mà tôi đã thêm cho chính mình. Tôi đã quên về ngày tôi chỉ định. Kết quả là khi tôi bị cắt, tôi đã không nhận ra cho đến khi kiểm tra email của mình. Dưới đây chúng ta có thể thấy rằng tôi đã đặt cơ sở dữ liệu để cắt tôi vào ngày 12 tháng 3 năm 2023.
Để khắc phục sự cố này, tôi chỉ cần cập nhật các quy tắc để kéo dài khung thời gian cho ngày "giới hạn" của mình. Như đã thấy ở đây:
Để giải quyết vấn đề, tôi đặt hạn chót tiếp theo là ngày 29 tháng 6. Bằng cách này, tôi sẽ không bị gián đoạn nữa cho đến thời hạn đó.
Người ta có thể hỏi “ Tại sao không đặt nó thành một vài năm kể từ bây giờ hoặc vài tháng kể từ bây giờ để bạn không bận tâm đến nó?” câu hỏi hay. Tôi sẽ không làm điều đó bởi vì tôi muốn có một vài lời nhắc hàng quý trong suốt cả năm để nhắc nhở tôi về sự phụ thuộc này. Tôi không muốn đặt deadline dài hạn rồi lại quên nó đi và mắc kẹt trong tình trạng tương tự một năm sau đó. Để nó liên tục có ý thức trong não của tôi có nghĩa là tôi liên tục nghĩ về tất cả các yếu tố có thể ảnh hưởng đến quá trình phát triển ứng dụng, điều này sẽ hữu ích khi tôi tiếp tục quá trình phát triển. Người ta có thể gọi đây là sở thích học tập.
Chúng tôi có thể thấy quy trình Xác thực Firebase thậm chí trả về mã thông báo id người dùng làm mã định danh đặc biệt của người dùng, đó là cách chúng tôi chắc chắn biết nó đã được đăng ký.
Phát triển là niềm vui, nhưng chúng ta luôn phải ý thức về những điều nhỏ nhặt. Hầu hết khi xảy ra sự cố với ứng dụng, rất có thể là do lỗi mã của chúng tôi. Tuy nhiên, đôi khi các vấn đề thậm chí có thể không đến từ mã của chúng tôi. Nó thực sự có thể chỉ là một cái gì đó đơn giản như một bản cập nhật cần thiết hoặc như trong trường hợp này, xem xét các quy tắc cơ sở dữ liệu đơn giản.