Bạn gặp phải vấn đề khác hoặc không thấy vấn đề của mình được nêu ở bên dưới? Vui lòng báo cáo lỗi hoặc yêu cầu tính năng và tham gia các cuộc thảo luận trên Stack Overflow.
Dự án Firebase và ứng dụng Firebase
Dự án Firebase là gì?
Dự án Firebase là thực thể cấp cao nhất của Firebase. Trong một dự án, bạn có thể đăng ký ứng dụng Apple, Android hoặc web. Sau khi đăng ký ứng dụng với Firebase, bạn có thể thêm SDK Firebase dành riêng cho sản phẩm vào ứng dụng, chẳng hạn như Analytics, Cloud Firestore, Crashlytics hoặc Remote Config.
Bạn nên đăng ký các biến thể ứng dụng Apple, Android và web trong một dự án Firebase. Bạn có thể sử dụng nhiều dự án Firebase để hỗ trợ nhiều môi trường, chẳng hạn như môi trường phát triển, môi trường thử nghiệm và môi trường phát hành công khai.
Dưới đây là một số tài nguyên để tìm hiểu thêm về các dự án Firebase:
- Tìm hiểu về các dự án Firebase – cung cấp thông tin tổng quan ngắn gọn về một số khái niệm quan trọng về các dự án Firebase, bao gồm cả mối quan hệ của các dự án này với Google Cloud và hệ phân cấp cơ bản của một dự án cũng như các ứng dụng và tài nguyên của dự án đó.
- Các phương pháp hay nhất chung để thiết lập dự án Firebase – cung cấp các phương pháp hay nhất chung, cấp cao để thiết lập dự án Firebase và đăng ký ứng dụng của bạn với một dự án để bạn có quy trình phát triển rõ ràng sử dụng các môi trường riêng biệt.
Xin lưu ý rằng đối với tất cả dự án Firebase, Firebase sẽ tự động thêm nhãn firebase:enabled
trong trang Nhãn cho dự án của bạn trong bảng điều khiển Google Cloud. Tìm hiểu thêm về nhãn này trong phần Câu hỏi thường gặp.
Tổ chức Google Cloud là gì?
Tổ chức Google Cloud là một vùng chứa cho các dự án Google Cloud (bao gồm cả dự án Firebase). Hệ phân cấp này giúp bạn sắp xếp, quản lý quyền truy cập và kiểm tra dự án Google Cloud và Firebase hiệu quả hơn. Để biết thêm thông tin, hãy tham khảo bài viết Tạo và quản lý tổ chức.
Làm cách nào để thêm Firebase vào dự án Google Cloud hiện có?
Bạn có thể có các dự án Google Cloud hiện có được quản lý thông qua bảng điều khiển Google Cloud hoặc bảng điều khiển API của Google.
Bạn có thể thêm Firebase vào các dự án Google Cloud hiện có này bằng một trong các tuỳ chọn sau:
- Sử dụng bảng điều khiển Firebase.
- Sử dụng tuỳ chọn có lập trình:
- Gọi điểm cuối API REST Quản lý Firebase
projects.addFirebase
. - Chạy lệnh CLI Firebase
firebase projects:addfirebase
. - Sử dụng Terraform.
- Gọi điểm cuối API REST Quản lý Firebase
Tìm hiểu thêm thông tin chi tiết về cách thêm Firebase vào dự án Google Cloud.
Cách hoạt động của tính năng tích hợp Firebase với Google Cloud?
Firebase được tích hợp sâu với Google Cloud. Các dự án được chia sẻ giữa Firebase và Google Cloud, vì vậy, các dự án có thể bật dịch vụ Firebase và dịch vụ Google Cloud. Bạn có thể truy cập vào cùng một dự án từ bảng điều khiển Firebase hoặc bảng điều khiển Google Cloud. Cụ thể:
- Một số sản phẩm Firebase được Google Cloud hỗ trợ trực tiếp, chẳng hạn như Cloud Storage for Firebase. Danh sách sản phẩm được Google Cloud hỗ trợ sẽ tiếp tục phát triển theo thời gian.
- Firebase và Google Cloud chia sẻ nhiều chế độ cài đặt của bạn, bao gồm cả thông tin về cộng tác viên và thông tin thanh toán. Mức sử dụng của bạn đối với cả Firebase và Google Cloud sẽ xuất hiện trên cùng một hoá đơn.
Ngoài ra, khi nâng cấp lên gói Blaze, bạn có thể sử dụng bất kỳ API và Cơ sở hạ tầng dưới dạng dịch vụ đẳng cấp thế giới nào của Google Cloud ngay trong dự án Firebase của mình, theo mức giá Google Cloud tiêu chuẩn. Bạn cũng có thể xuất dữ liệu từ Google Cloud trực tiếp sang BigQuery để phân tích. Để tìm hiểu thêm, hãy xem bài viết Liên kết BigQuery với Firebase.
Việc sử dụng Google Cloud với Firebase mang lại nhiều lợi ích về việc tăng cường bảo mật, cải thiện độ trễ và tiết kiệm thời gian (so với các dịch vụ đám mây khác không được đặt cùng vị trí). Hãy xem trang web Google Cloud để biết thêm thông tin chi tiết.
Tại sao dự án Google Cloud của tôi có nhãn là firebase:enabled
?
Trong trang Nhãn cho dự án của bạn trong bảng điều khiển Google Cloud, bạn có thể thấy nhãn firebase:enabled
(cụ thể là Key
của firebase
với Value
là enabled
).
Firebase tự động thêm nhãn này vì dự án của bạn là dự án Firebase, nghĩa là dự án của bạn đã bật các cấu hình và dịch vụ dành riêng cho Firebase. Tìm hiểu thêm về mối quan hệ giữa dự án Firebase và Google Cloud.
Bạn không nên sửa đổi hoặc xoá nhãn này. Nhãn này được Firebase và Google Cloud sử dụng để liệt kê các dự án Firebase (ví dụ: sử dụng điểm cuối projects.list
API REST hoặc trong trình đơn trong bảng điều khiển Firebase).
Xin lưu ý rằng việc thêm nhãn này vào danh sách nhãn dự án theo cách thủ công KHÔNG bật các cấu hình và dịch vụ dành riêng cho Firebase cho dự án Google Cloud. Để làm việc đó, bạn cần thêm Firebase bằng cách sử dụng bảng điều khiển Firebase (hoặc đối với các trường hợp sử dụng nâng cao, hãy sử dụng API quản lý Firebase REST hoặc Firebase CLI).
Tại sao dự án Firebase của tôi không xuất hiện trong danh sách dự án Firebase?
Câu hỏi thường gặp này áp dụng nếu bạn không thấy dự án Firebase của mình ở các vị trí sau:
- Trong danh sách dự án mà bạn đang xem trong bảng điều khiển Firebase
- Trong phản hồi từ lệnh gọi điểm cuối
projects.list
của API REST - Trong phản hồi từ việc chạy lệnh CLI Firebase
firebase projects:list
Hãy thử các bước khắc phục sự cố sau:
- Trước tiên, hãy thử truy cập vào dự án của bạn bằng cách truy cập trực tiếp vào URL của dự án. Sử dụng định dạng sau:
https://console.firebase.google.com/project/PROJECT_ID/overview
- Nếu bạn không thể truy cập vào dự án hoặc gặp lỗi về quyền, hãy kiểm tra các vấn đề sau:
- Đảm bảo rằng bạn đã đăng nhập vào Firebase bằng chính Tài khoản Google có quyền truy cập vào dự án. Bạn có thể đăng nhập và đăng xuất khỏi bảng điều khiển Firebase thông qua hình đại diện tài khoản ở góc trên cùng bên phải của bảng điều khiển.
- Kiểm tra xem bạn có thể xem dự án trong bảng điều khiển Google Cloud hay không.
- Đảm bảo rằng dự án của bạn có nhãn
firebase:enabled
trong trang Nhãn cho dự án trong bảng điều khiển Google Cloud. Firebase và Google Cloud sử dụng nhãn này để liệt kê các dự án Firebase của bạn. Nếu bạn không thấy nhãn này nhưng API Quản lý Firebase đã được bật cho dự án của bạn, hãy thêm nhãn theo cách thủ công (cụ thể làKey
củafirebase
vớiValue
củaenabled
). - Đảm bảo rằng bạn được chỉ định một trong các vai trò IAM cơ bản (Chủ sở hữu, Người chỉnh sửa, Người xem) hoặc một vai trò có các quyền liên quan đến Firebase, chẳng hạn như vai trò được xác định trước của Firebase. Bạn có thể xem(các) vai trò của mình trong trang IAM của bảng điều khiển Google Cloud.
- Nếu dự án của bạn thuộc về một tổ chức Google Cloud, thì bạn có thể cần thêm quyền để xem dự án được liệt kê trong bảng điều khiển Firebase. Hãy liên hệ với người quản lý tổ chức Google Cloud của bạn để được cấp vai trò thích hợp để xem dự án, chẳng hạn như vai trò Trình duyệt.
Nếu không có bước khắc phục sự cố nào ở trên giúp bạn thấy dự án của mình trong danh sách dự án Firebase, hãy liên hệ với Nhóm hỗ trợ Firebase.
Mỗi tài khoản có thể có bao nhiêu dự án?
- Gói giá Spark — Hạn mức dự án của bạn bị giới hạn ở một số ít dự án (thường là khoảng 5 đến 10 dự án).
- Gói giá Blaze – Hạn mức dự án trên mỗi tài khoản Cloud Billing sẽ tăng lên đáng kể miễn là tài khoản Cloud Billing của bạn ở trạng thái tốt.
Giới hạn về hạn mức dự án hiếm khi gây lo ngại cho hầu hết nhà phát triển, nhưng nếu cần, bạn có thể yêu cầu tăng hạn mức dự án.
Xin lưu ý rằng quá trình xoá hoàn toàn một dự án sẽ mất 30 ngày và tính vào hạn mức của bạn cho đến khi dự án đó bị xoá hoàn toàn.
Tôi có thể có bao nhiêu Ứng dụng Firebase trong một dự án Firebase?
Dự án Firebase là một vùng chứa cho Ứng dụng Firebase trên Apple, Android và web. Firebase giới hạn tổng số Ứng dụng Firebase trong một dự án Firebase ở mức 30.
Sau con số này, hiệu suất bắt đầu giảm (đặc biệt là đối với Google Analytics) và cuối cùng, khi số lượng ứng dụng tăng lên, một số chức năng của sản phẩm sẽ ngừng hoạt động. Ngoài ra, nếu bạn sử dụng tính năng Đăng nhập bằng Google làm nhà cung cấp dịch vụ xác thực, thì một mã ứng dụng khách OAuth 2.0 cơ bản sẽ được tạo cho mỗi ứng dụng trong dự án của bạn. Bạn chỉ có thể tạo tối đa khoảng 30 mã ứng dụng trong một dự án.
Bạn nên đảm bảo rằng tất cả Ứng dụng Firebase trong một dự án Firebase là các biến thể nền tảng của cùng một ứng dụng từ quan điểm của người dùng cuối. Ví dụ: nếu bạn phát triển một ứng dụng nhãn trắng, thì mỗi ứng dụng được gắn nhãn độc lập phải có dự án Firebase riêng, nhưng phiên bản Apple và Android của nhãn đó có thể nằm trong cùng một dự án. Hãy đọc hướng dẫn chi tiết hơn trong các phương pháp hay nhất chung để thiết lập dự án Firebase.
Trong trường hợp hiếm hoi dự án của bạn cần nhiều hơn 30 ứng dụng, bạn có thể yêu cầu tăng hạn mức ứng dụng. Dự án của bạn phải sử dụng gói giá Blaze thì mới có thể thực hiện yêu cầu này. Truy cập vào bảng điều khiển Google Cloud để gửi yêu cầu và yêu cầu đánh giá. Tìm hiểu thêm về cách quản lý hạn mức trong tài liệu về Google Cloud.
Điều gì sẽ xảy ra nếu tôi gắn thẻ dự án của mình là môi trường "sản xuất"?
Trong bảng điều khiển Firebase, bạn có thể gắn thẻ các dự án Firebase bằng loại môi trường của dự án, chẳng hạn như môi trường Sản xuất hoặc Không xác định (không phải sản xuất).
Việc gắn thẻ dự án của bạn là một loại môi trường sẽ không ảnh hưởng đến cách hoạt động hoặc các tính năng của dự án Firebase. Tuy nhiên, tính năng gắn thẻ có thể giúp bạn và nhóm của bạn quản lý nhiều dự án Firebase trong vòng đời của ứng dụng.
Nếu bạn gắn thẻ dự án của mình là môi trường phát hành chính thức, chúng tôi sẽ thêm thẻ Prod có màu sắc rực rỡ vào dự án trong bảng điều khiển Firebase để nhắc bạn rằng mọi thay đổi đều có thể ảnh hưởng đến các ứng dụng phát hành chính thức được liên kết. Trong tương lai, chúng tôi có thể bổ sung thêm các tính năng và biện pháp bảo vệ cho các dự án Firebase được gắn thẻ là môi trường phát hành chính thức.
Để thay đổi loại môi trường của dự án Firebase, hãy chuyển đến settings Cài đặt dự án > Chung, sau đó trong thẻ Dự án của bạn trong phần Môi trường, hãy nhấp vào edit để thay đổi loại môi trường.
Tôi có thể tìm thấy Mã ứng dụng cho ứng dụng Firebase của mình ở đâu?
Trong bảng điều khiển Firebase, hãy chuyển đến settings Cài đặt dự án. Di chuyển xuống thẻ Ứng dụng của bạn, sau đó nhấp vào Ứng dụng Firebase mà bạn muốn để xem thông tin của ứng dụng, bao gồm cả Mã ứng dụng.
Dưới đây là một số giá trị Mã ứng dụng mẫu:
-
Ứng dụng Firebase dành cho iOS:
1:1234567890:ios:321abc456def7890
-
Ứng dụng Firebase dành cho Android:
1:1234567890:android:321abc456def7890
-
Ứng dụng web Firebase:
1:1234567890:web:321abc456def7890
Điều kiện tiên quyết để liên kết Google Play / AdMob / Google Ads / BigQuery với dự án hoặc ứng dụng Firebase của tôi là gì?
- Để liên kết
tài khoản Google Play, bạn cần có:
- Một trong các vai trò sau đây trên Firebase: Chủ sở hữu hoặc Quản trị viên Firebase
và - Một trong các cấp truy cập Google Play sau: Chủ sở hữu hoặc Quản trị viên tài khoản
- Một trong các vai trò sau đây trên Firebase: Chủ sở hữu hoặc Quản trị viên Firebase
- Để liên kết ứng dụng AdMob, bạn cần phải là cả chủ sở hữu dự án Firebase và quản trị viên AdMob.
- Để liên kết tài khoản AdWords, bạn cần phải vừa là chủ sở hữu dự án Firebase vừa là quản trị viên AdWords.
- Để liên kết dự án BigQuery, bạn cần phải là chủ sở hữu dự án Firebase.
Tôi nên đưa thông báo nào về nguồn mở vào ứng dụng của mình?
Trên các nền tảng của Apple, nhóm Firebase chứa một tệp NOTICES bao gồm các mục nhập có liên quan. SDK Firebase cho Android chứa một trình trợ giúp Activity
để hiển thị thông tin giấy phép.
Quyền và quyền truy cập vào dự án Firebase
Làm cách nào để chỉ định vai trò cho thành viên dự án, chẳng hạn như vai trò Chủ sở hữu?
Để quản lý(các) vai trò được chỉ định cho từng thành viên dự án, bạn phải là Chủ sở hữu dự án Firebase (hoặc được chỉ định một vai trò có quyền resourcemanager.projects.setIamPolicy
).
Sau đây là những nơi bạn có thể chỉ định và quản lý vai trò:
- Bảng điều khiển Firebase cung cấp một cách đơn giản để chỉ định vai trò cho các thành viên trong dự án trong thẻ Người dùng và quyền của settings > Cài đặt dự án. Trong bảng điều khiển Firebase, bạn có thể chỉ định bất kỳ vai trò cơ bản nào (Chủ sở hữu, Người chỉnh sửa, Người xem), vai trò Quản trị viên/Người xem Firebase hoặc bất kỳ vai trò theo danh mục sản phẩm được xác định trước của Firebase nào.
- Bảng điều khiển Google Cloud cung cấp một bộ công cụ mở rộng để chỉ định vai trò cho các thành viên dự án trong trang IAM. Trong bảng điều khiển Cloud, bạn cũng có thể tạo và quản lý vai trò tuỳ chỉnh, cũng như cấp cho tài khoản dịch vụ quyền truy cập vào dự án của bạn.
Xin lưu ý rằng trong bảng điều khiển Google Cloud, các thành viên dự án được gọi là chủ sở hữu.
Nếu Chủ sở hữu dự án của bạn không thể thực hiện các nhiệm vụ của Chủ sở hữu nữa (ví dụ: người đó đã rời khỏi công ty của bạn) và dự án của bạn không được quản lý thông qua một tổ chức Google Cloud (xem đoạn tiếp theo), thì bạn có thể liên hệ với Nhóm hỗ trợ Firebase để trao đổi với họ về cách yêu cầu quyền truy cập vào dự án Firebase.
Xin lưu ý rằng nếu một dự án Firebase thuộc một tổ chức Google Cloud, thì dự án đó có thể không có Chủ sở hữu. Nếu bạn không tìm thấy Chủ sở hữu cho dự án Firebase, hãy liên hệ với người quản lý tổ chức Google Cloud của bạn để chỉ định Chủ sở hữu cho dự án.
Làm cách nào để tìm Chủ sở hữu của một dự án Firebase?
Bạn có thể xem thành viên dự án và vai trò của họ ở những nơi sau:
- Nếu có quyền truy cập vào dự án trong bảng điều khiển Firebase, bạn có thể xem danh sách thành viên dự án, bao gồm cả Chủ sở hữu, trong trang Người dùng và quyền của bảng điều khiển Firebase.
- Nếu bạn không có quyền truy cập vào dự án trong bảng điều khiển Firebase, hãy kiểm tra xem bạn có quyền truy cập vào dự án trong bảng điều khiển Google Cloud hay không. Bạn có thể xem danh sách thành viên dự án, bao gồm cả Chủ sở hữu, trong trang IAM của bảng điều khiển Google Cloud.
Nếu Chủ sở hữu dự án của bạn không thể thực hiện các nhiệm vụ của Chủ sở hữu nữa (ví dụ: người đó đã rời khỏi công ty của bạn) và dự án của bạn không được quản lý thông qua một tổ chức Google Cloud (xem đoạn tiếp theo), thì bạn có thể liên hệ với Nhóm hỗ trợ Firebase để chỉ định một Chủ sở hữu tạm thời.
Xin lưu ý rằng nếu một dự án Firebase thuộc một tổ chức Google Cloud, thì dự án đó có thể không có Chủ sở hữu. Thay vào đó, người quản lý tổ chức Google Cloud của bạn có thể thực hiện nhiều tác vụ mà Chủ sở hữu có thể làm. Tuy nhiên, để thực hiện một số tác vụ dành riêng cho Chủ sở hữu (chẳng hạn như chỉ định vai trò hoặc quản lý tài sản Google Analytics), quản trị viên có thể cần phải tự chỉ định vai trò Chủ sở hữu thực tế để thực hiện các tác vụ đó. Nếu bạn không tìm thấy Chủ sở hữu cho dự án Firebase, hãy liên hệ với người quản lý tổ chức Google Cloud của bạn để chỉ định Chủ sở hữu cho dự án.
Tại sao hoặc khi nào tôi nên chỉ định vai trò Chủ sở hữu cho một thành viên dự án?
Để đảm bảo việc quản lý dự án Firebase đúng cách, dự án đó phải có một Chủ sở hữu. Chủ sở hữu dự án là người có thể thực hiện một số thao tác quản trị quan trọng (chẳng hạn như chỉ định vai trò và quản lý tài sản Google Analytics). Nhóm hỗ trợ Firebase chỉ có thể thực hiện các yêu cầu quản trị của Chủ sở hữu dự án được chứng minh.
Sau khi bạn thiết lập(các) Chủ sở hữu cho một dự án Firebase, điều quan trọng là bạn phải cập nhật các quyền đó.
Xin lưu ý rằng nếu một dự án Firebase thuộc một tổ chức Google Cloud, thì người quản lý tổ chức Google Cloud có thể thực hiện nhiều nhiệm vụ mà Chủ sở hữu có thể làm. Tuy nhiên, đối với một số nhiệm vụ dành riêng cho Chủ sở hữu (chẳng hạn như chỉ định vai trò hoặc quản lý tài sản Google Analytics), quản trị viên có thể cần phải tự chỉ định vai trò Chủ sở hữu thực tế để thực hiện các nhiệm vụ đó.
Tôi không nghĩ mình có dự án Firebase, nhưng tôi nhận được email về một dự án như vậy. Làm cách nào để truy cập vào dự án này?
Email bạn nhận được sẽ chứa một đường liên kết để mở dự án Firebase. Khi nhấp vào đường liên kết trong email, dự án sẽ mở trong bảng điều khiển Firebase.
Nếu bạn không thể mở dự án trong đường liên kết, hãy đảm bảo rằng bạn đã đăng nhập vào Firebase bằng chính Tài khoản Google đã nhận được email về dự án. Bạn có thể đăng nhập và đăng xuất khỏi bảng điều khiển Firebase thông qua hình đại diện của tài khoản ở góc trên cùng bên phải của bảng điều khiển.
Xin lưu ý rằng nếu là quản trị viên của một tổ chức Google Cloud, bạn có thể nhận được thông báo về những thay đổi đối với các dự án Firebase trong tổ chức của mình. Tuy nhiên, có thể bạn không có đủ quyền để mở dự án Firebase. Trong những trường hợp này, giải pháp đơn giản nhất là chỉ định cho chính bạn vai trò Chủ sở hữu thực tế để mở dự án và thực hiện các hành động cần thiết. Tìm hiểu thêm về lý do và thời điểm chỉ định vai trò Chủ sở hữu.
Nền tảng và khung
Hãy truy cập vào các trang khắc phục sự cố và câu hỏi thường gặp theo từng nền tảng để biết các mẹo hữu ích và câu trả lời cho các câu hỏi thường gặp khác.
Bảng điều khiển Firebase
Những trình duyệt nào được hỗ trợ để truy cập vào bảng điều khiển Firebase?
Bạn có thể truy cập vào bảng điều khiển Firebase từ các phiên bản mới đây của các trình duyệt phổ biến trên máy tính như Chrome, Firefox, Safari và Edge. Trình duyệt dành cho thiết bị di động hiện chưa được hỗ trợ đầy đủ.
Tôi có thể tải bảng điều khiển Firebase, nhưng tại sao tôi không tìm thấy hoặc truy cập được vào dự án Firebase của mình?
Câu hỏi thường gặp này áp dụng nếu bạn đang gặp phải một trong những vấn đề sau:
- Bảng điều khiển Firebase trả về một trang lỗi cho biết dự án của bạn có thể không tồn tại hoặc bạn không có quyền truy cập vào dự án.
- Bảng điều khiển Firebase không hiển thị dự án của bạn ngay cả khi bạn nhập mã dự án hoặc tên dự án vào trường tìm kiếm của bảng điều khiển.
Hãy thử các bước khắc phục sự cố sau:
- Trước tiên, hãy thử truy cập vào dự án của bạn bằng cách truy cập trực tiếp vào URL của dự án. Sử dụng định dạng sau:
https://console.firebase.google.com/project/PROJECT-ID/overview
- Nếu bạn vẫn không thể truy cập vào dự án hoặc gặp lỗi về quyền, hãy kiểm tra những vấn đề sau:
- Đảm bảo rằng bạn đã đăng nhập vào Firebase bằng chính Tài khoản Google có quyền truy cập vào dự án. Bạn có thể đăng nhập và đăng xuất khỏi bảng điều khiển Firebase thông qua hình đại diện tài khoản ở góc trên cùng bên phải của bảng điều khiển.
- Đảm bảo rằng bạn đã bật Firebase Management API cho dự án.
- Đảm bảo rằng bạn được chỉ định một trong các vai trò IAM cơ bản (Chủ sở hữu, Người chỉnh sửa, Người xem) hoặc một vai trò có các quyền liên quan đến Firebase, chẳng hạn như vai trò được xác định trước của Firebase. Bạn có thể xem(các) vai trò của mình trong trang IAM của bảng điều khiển Google Cloud.
- Nếu dự án của bạn thuộc về một tổ chức Google Cloud, bạn có thể cần thêm quyền để xem dự án được liệt kê trong bảng điều khiển Firebase. Hãy liên hệ với người quản lý tổ chức Google Cloud của bạn để được cấp vai trò thích hợp để xem dự án, chẳng hạn như vai trò Trình duyệt.
Nếu không có bước khắc phục sự cố nào ở trên giúp bạn tìm thấy hoặc truy cập vào dự án, hãy liên hệ với Nhóm hỗ trợ Firebase.
Tại sao bảng điều khiển Firebase không tải được?
Bạn có thể tham khảo phần Câu hỏi thường gặp này nếu gặp phải một trong những vấn đề sau:
- Trang trong bảng điều khiển Firebase không bao giờ tải xong.
- Dữ liệu trong một trang không tải như dự kiến.
- Bạn nhận được thông báo lỗi trình duyệt khi tải bảng điều khiển Firebase.
Hãy thử các bước khắc phục sự cố sau:
- Kiểm tra hàng Bảng điều khiển của Trang tổng quan về trạng thái của Firebase để xem có sự cố gián đoạn dịch vụ nào không.
- Đảm bảo rằng bạn đang sử dụng một trình duyệt được hỗ trợ.
- Thử tải bảng điều khiển Firebase trong một cửa sổ ẩn danh hoặc riêng tư.
- Tắt tất cả tiện ích của trình duyệt.
- Xác minh rằng kết nối mạng không bị trình chặn quảng cáo, phần mềm diệt vi-rút, proxy, tường lửa hoặc phần mềm khác chặn.
- Thử tải bảng điều khiển Firebase bằng một mạng hoặc thiết bị khác.
- Nếu bạn sử dụng Chrome, hãy kiểm tra Bảng điều khiển công cụ dành cho nhà phát triển để xem có lỗi nào không.
Nếu không có bước khắc phục sự cố nào ở trên giải quyết được vấn đề, hãy liên hệ với Nhóm hỗ trợ Firebase.
Ngôn ngữ của bảng điều khiển Firebase được xác định như thế nào?
Chế độ cài đặt ngôn ngữ cho bảng điều khiển Firebase dựa trên ngôn ngữ bạn chọn trong phần cài đặt Tài khoản Google.
Để thay đổi ngôn ngữ ưu tiên, hãy xem phần Thay đổi ngôn ngữ.
Bảng điều khiển Firebase hỗ trợ các ngôn ngữ sau:
- Tiếng Anh
- Tiếng Bồ Đào Nha (Brazil)
- Tiếng Pháp
- Tiếng Đức
- Tiếng Indonesia
- Tiếng Nhật
- Tiếng Hàn
- Tiếng Nga
- Tiếng Trung giản thể
- Tiếng Tây Ban Nha
- Tiếng Trung phồn thể
Bảng điều khiển Firebase hỗ trợ những vai trò và quyền nào?
Bảng điều khiển Firebase và bảng điều khiển Google Cloud sử dụng cùng một vai trò và quyền cơ bản. Tìm hiểu thêm về các vai trò và quyền trong tài liệu về IAM của Firebase.
Firebase hỗ trợ các vai trò cơ bản (cơ bản) của Chủ sở hữu, Người chỉnh sửa và Người xem:
- Chủ sở hữu dự án có thể thêm các thành viên khác vào dự án, thiết lập các tính năng tích hợp (liên kết dự án với các dịch vụ như BigQuery hoặc Slack) và có quyền chỉnh sửa đầy đủ đối với dự án.
- Người chỉnh sửa dự án có toàn quyền chỉnh sửa dự án.
- Người xem dự án chỉ có quyền đọc đối với dự án. Xin lưu ý rằng bảng điều khiển Firebase hiện không ẩn/tắt các chế độ điều khiển chỉnh sửa giao diện người dùng khỏi Người xem dự án, nhưng các thao tác này sẽ không thành công đối với các thành viên dự án được chỉ định vai trò Người xem.
Firebase cũng hỗ trợ:
- Các vai trò được xác định trước trên Firebase – Các vai trò dành riêng cho Firebase được tuyển chọn giúp kiểm soát quyền truy cập chi tiết hơn so với các vai trò cơ bản là Chủ sở hữu, Người chỉnh sửa và Người xem.
- Vai trò tuỳ chỉnh – Các vai trò IAM được tuỳ chỉnh đầy đủ mà bạn tạo để điều chỉnh một nhóm quyền đáp ứng các yêu cầu cụ thể của tổ chức.
Firebase Local Emulator Suite
Tại sao nhật ký của Bộ mô phỏng hiển thị lỗi bắt đầu bằng "Không nên sử dụng nhiều projectId ở chế độ dự án đơn"?
Thông báo này có nghĩa là Bộ trình mô phỏng đã phát hiện thấy có thể đang chạy một trình mô phỏng sản phẩm cụ thể bằng nhiều mã dự án. Điều này có thể cho thấy lỗi định cấu hình và có thể gây ra sự cố khi trình mô phỏng cố gắng giao tiếp với nhau và khi bạn cố gắng tương tác với trình mô phỏng từ mã của mình. Nếu mã dự án không khớp, thì thường sẽ có vẻ như thiếu dữ liệu, vì dữ liệu được lưu trữ trong trình mô phỏng được khoá bằng projectID và khả năng tương tác phụ thuộc vào việc khớp mã dự án.
Đây là nguồn gây nhầm lẫn phổ biến giữa các nhà phát triển, vì vậy, theo mặc định, Local Emulator Suite hiện sẽ chỉ cho phép chạy với một mã dự án duy nhất, trừ phi bạn chỉ định khác trong tệp cấu hình firebase.json
. Nếu phát hiện nhiều mã dự án, trình mô phỏng sẽ ghi lại cảnh báo và có thể gửi một lỗi nghiêm trọng.
Kiểm tra(các) nội dung khai báo mã dự án để tìm nội dung không khớp trong:
-
Dự án mặc định được đặt tại dòng lệnh. Theo mặc định, mã dự án sẽ được lấy khi khởi động từ dự án được chọn bằng
firebase init
hoặcfirebase use
. Để xem danh sách dự án (và xem dự án nào được chọn), hãy sử dụngfirebase projects:list
. -
Kiểm thử đơn vị. Mã dự án thường được chỉ định trong các lệnh gọi đến phương thức thư viện Kiểm thử đơn vị quy tắc
initializeTestEnvironment
hoặcinitializeTestApp
. Mã kiểm thử khác có thể khởi chạy bằnginitializeApp(config)
. -
Cờ
--project
của dòng lệnh. Việc truyền cờ--project
CLI Firebase sẽ ghi đè dự án mặc định. Bạn cần đảm bảo giá trị của cờ khớp với mã dự án trong kiểm thử đơn vị và khởi chạy ứng dụng.
Những nơi cần kiểm tra theo nền tảng:
Web | Thuộc tính projectId trong đối tượng firebaseConfig của JavaScript, được dùng trong initializeApp .
|
Android | Thuộc tính project_id bên trong tệp cấu hình google-services.json .
|
Nền tảng của Apple | Thuộc tính PROJECT_ID trong tệp cấu hình GoogleService-Info.plist .
|
Để tắt chế độ dự án đơn, hãy cập nhật firebase.json
bằng khoá singleProjectMode
:
{ "firestore": { ... }, "functions": { ... }, "hosting": { ... }, "emulators": { "singleProjectMode": false, "auth": { "port": 9099 }, "functions": { "port": 5001 }, ... } }
Giá
Để biết các câu hỏi thường gặp về giá dành riêng cho một sản phẩm, hãy xem mục của sản phẩm đó trên trang này hoặc trong tài liệu chuyên dụng về sản phẩm.
Sản phẩm nào phải trả phí? Loại nào không mất phí?
Các sản phẩm cơ sở hạ tầng có tính phí của Firebase là Realtime Database, Cloud Storage for Firebase, Cloud Functions, Hosting, Test Lab và xác thực qua điện thoại. Chúng tôi cung cấp một cấp miễn phí cho tất cả các tính năng này.
Firebase cũng có nhiều sản phẩm miễn phí: Analytics, Cloud Messaging, Công cụ soạn thông báo, Remote Config, App Indexing, Dynamic Links và Crash Reporting. Việc sử dụng các sản phẩm này chỉ tuân theo chính sách kiểm soát lưu lượng truy cập của sản phẩm (ví dụ: hạn mức, quyền truy cập công bằng và các biện pháp bảo vệ dịch vụ khác) trong tất cả các gói, bao gồm cả gói Spark miễn phí. Ngoài ra, tất cả các tính năng của Authentication ngoài tính năng xác thực qua điện thoại đều miễn phí.
Firebase có cung cấp khoản tín dụng dùng thử miễn phí cho các sản phẩm có tính phí không?
Bạn có thể sử dụng các dịch vụ có tính phí của Firebase trong chương trình Google CloudDùng thử miễn phí. Người dùng mới của Google Cloud và Firebase có thể tận dụng thời gian dùng thử 90 ngày, trong đó có 300 USD tín dụng Cloud Billing miễn phí để khám phá và đánh giá các sản phẩm và dịch vụ của Google Cloud và Firebase.
Trong thời gian Dùng thử miễn phí Google Cloud, bạn sẽ được cung cấp một tài khoản Cloud Billing Dùng thử miễn phí. Mọi dự án Firebase sử dụng tài khoản thanh toán đó sẽ sử dụng gói giá Blaze trong thời gian dùng thử miễn phí.
Đừng lo, việc thiết lập tài khoản Cloud Billing dùng thử miễn phí này sẽ không cho phép chúng tôi tính phí bạn. Bạn sẽ không bị tính phí trừ phi bạn bật tính năng thanh toán một cách rõ ràng bằng cách nâng cấp tài khoản Cloud Billing Dùng thử miễn phí lên tài khoản có tính phí. Bạn có thể nâng cấp lên tài khoản trả phí bất cứ lúc nào trong thời gian dùng thử. Sau khi nâng cấp, bạn vẫn có thể sử dụng mọi khoản tín dụng còn lại (trong khoảng thời gian 90 ngày).
Sau khi thời gian dùng thử miễn phí kết thúc, bạn cần hạ cấp dự án xuống gói giá Spark hoặc thiết lập gói giá Blaze trong bảng điều khiển Firebase để tiếp tục sử dụng dự án Firebase.
Tìm hiểu thêm về Bản dùng thử miễn phí Google Cloud.
Làm cách nào để biết gói giá nào phù hợp với tôi?
Gói giá Spark
Gói Spark là một nơi tuyệt vời để phát triển ứng dụng mà không tốn phí. Bạn sẽ có tất cả các tính năng Firebase miễn phí (Analytics, Công cụ soạn thông báo, Crashlytics, v.v.) và nhiều tính năng cơ sở hạ tầng có tính phí. Tuy nhiên, nếu bạn vượt quá tài nguyên của gói Spark trong một tháng theo lịch, thì ứng dụng của bạn sẽ bị tắt trong phần còn lại của tháng đó. Ngoài ra, bạn không thể sử dụng các tính năng Google Cloud khi dùng gói Spark.
Gói giá Blaze
Gói Blaze của chúng tôi được thiết kế cho các ứng dụng phát hành công khai. Gói Blaze cũng cho phép bạn mở rộng ứng dụng bằng các tính năng Google Cloud có tính phí. Bạn chỉ phải trả tiền cho những tài nguyên mà bạn sử dụng, cho phép bạn mở rộng quy mô theo nhu cầu. Chúng tôi cố gắng đưa ra mức giá cạnh tranh cho gói Blaze so với các nhà cung cấp dịch vụ đám mây hàng đầu trong ngành.
Tôi có thể nâng cấp, hạ cấp hoặc huỷ gói thuê bao bất cứ lúc nào không?
Có, bạn có thể nâng cấp, hạ cấp hoặc huỷ gói thuê bao bất cứ lúc nào. Xin lưu ý rằng chúng tôi không hoàn tiền theo tỷ lệ cho các trường hợp hạ cấp hoặc huỷ. Điều này có nghĩa là nếu hạ cấp hoặc huỷ trước khi kết thúc kỳ thanh toán, bạn vẫn phải thanh toán cho phần còn lại của tháng.
Mức sử dụng không tốn phí trong gói Blaze khác với mức sử dụng không tốn phí trong gói Spark như thế nào?
Mức sử dụng không tính phí trên gói Blaze được tính hằng ngày. Giới hạn sử dụng cũng khác với gói Spark đối với Cloud Functions, xác thực qua điện thoại và Test Lab.
Đối với Cloud Functions, mức sử dụng không tính phí trên gói Blaze được tính ở cấp tài khoản Cloud Billing, chứ không phải cấp dự án và có các hạn mức sau:
- 2 triệu lệnh gọi/tháng
- 400.000 GB-giây/tháng
- 200.000 giây CPU/tháng
- 5 GB lưu lượng truy cập mạng/tháng
Đối với phương thức xác thực qua điện thoại, mức sử dụng miễn phí trên gói Blaze được tính theo tháng.
Đối với Test Lab, việc sử dụng không mất phí trên gói Blaze có các giới hạn sau:
- 30 phút/ngày trên thiết bị thực
- 60 phút trên thiết bị ảo/ngày
Hạn mức sử dụng không tính phí có được đặt lại khi tôi thay đổi từ gói Spark sang gói Blaze không?
Gói Blaze bao gồm cả hạn mức sử dụng miễn phí của gói Spark. Mức sử dụng miễn phí sẽ không được đặt lại khi bạn chuyển sang gói Blaze.
Điều gì sẽ xảy ra với dự án Firebase của tôi nếu tôi thêm hoặc xoá tài khoản thanh toán cho dự án đó trong bảng điều khiển Google Cloud?
Nếu bạn thêm tài khoản Cloud Billing vào một dự án trong bảng điều khiển Google Cloud, thì dự án đó sẽ tự động được nâng cấp lên gói Firebase Blaze nếu dự án đó hiện đang sử dụng gói Spark.
Ngược lại, nếu một tài khoản Cloud Billing đang hoạt động hiện có bị xoá khỏi một dự án trong bảng điều khiển Google Cloud, thì dự án đó sẽ bị hạ cấp xuống gói Firebase Spark.
Làm cách nào để theo dõi mức sử dụng và thông tin thanh toán của tôi?
Bạn có thể theo dõi mức sử dụng tài nguyên dự án trong bảng điều khiển Firebase trên bất kỳ trang tổng quan nào sau đây:
- Trang tổng quan tổng thể về Mức sử dụng và thông tin thanh toán ở cấp dự án
- Authentication Trang tổng quan về Mức sử dụng (dành riêng cho các phiên bản xác thực qua Điện thoại)
- Cloud Firestore Trang tổng quan về Mức sử dụng
- Cloud Functions Trang tổng quan về Mức sử dụng
- Cloud Storage Trang tổng quan về Mức sử dụng
- Hosting Trang tổng quan về Mức sử dụng
- Realtime Database Trang tổng quan về Mức sử dụng
Tôi có thể giới hạn mức sử dụng trên gói Blaze không?
Không, bạn hiện không thể đặt giới hạn sử dụng cho gói Blaze. Chúng tôi đang đánh giá các phương án hỗ trợ giới hạn về mức sử dụng gói Blaze.
Người dùng Blaze có thể xác định ngân sách cho dự án hoặc tài khoản của họ và nhận cảnh báo khi mức chi tiêu của họ sắp đạt đến các giới hạn đó. Tìm hiểu cách thiết lập cảnh báo về ngân sách.
Tôi sẽ nhận được loại hỗ trợ nào?
Tất cả ứng dụng Firebase, bao gồm cả những ứng dụng sử dụng gói không tính phí, đều được hỗ trợ qua email bởi nhân viên Firebase trong giờ làm việc của Hoa Kỳ ở Thái Bình Dương. Tất cả tài khoản đều có dịch vụ hỗ trợ không giới hạn đối với các vấn đề liên quan đến việc thanh toán, các vấn đề liên quan đến tài khoản, câu hỏi kỹ thuật (khắc phục sự cố) và báo cáo sự cố.
Bạn có cung cấp ưu đãi giảm giá cho tổ chức phi lợi nhuận, tổ chức nguồn mở hay tổ chức giáo dục không?
Mọi cá nhân hoặc tổ chức, bao gồm cả các tổ chức phi lợi nhuận, trường học và dự án nguồn mở đều có thể sử dụng gói Spark của chúng tôi. Vì các gói này đã có hạn mức hào phóng, nên chúng tôi không cung cấp ưu đãi chiết khấu hoặc gói đặc biệt nào cho các dự án nguồn mở, phi lợi nhuận hoặc giáo dục.
Bạn có cung cấp hợp đồng doanh nghiệp, giá, dịch vụ hỗ trợ hoặc dịch vụ lưu trữ cơ sở hạ tầng chuyên dụng không?
Gói Blaze phù hợp với các doanh nghiệp thuộc mọi quy mô và Thoả thuận mức độ cung cấp dịch vụ (SLA) của chúng tôi đáp ứng hoặc vượt quá tiêu chuẩn ngành về cơ sở hạ tầng đám mây. Tuy nhiên, chúng tôi hiện không cung cấp hợp đồng, giá hoặc dịch vụ hỗ trợ cho doanh nghiệp, cũng như không cung cấp dịch vụ lưu trữ hạ tầng chuyên dụng (tức là cài đặt tại chỗ) cho các dịch vụ như Realtime Database. Chúng tôi đang nỗ lực để bổ sung một số tính năng này.
Bạn có cung cấp giá tuỳ chỉnh không? Tôi chỉ muốn thanh toán theo mức sử dụng cho một hoặc hai tính năng.
Chúng tôi cung cấp mức giá tuỳ chỉnh trong gói Blaze, theo đó bạn chỉ trả tiền cho những tính năng mà bạn sử dụng.
Các gói Firebase có tính phí hoạt động như thế nào với Ads? Các gói trả phí có tín dụng quảng cáo miễn phí không?
Các gói giá của Firebase tách biệt với Ads, vì vậy, không có khoản tín dụng quảng cáo nào không tính phí. Là nhà phát triển Firebase, bạn có thể "liên kết" tài khoản Ads với Firebase để hỗ trợ tính năng theo dõi lượt chuyển đổi.
Tất cả chiến dịch quảng cáo đều được quản lý trực tiếp trong Ads và hệ thống thanh toán Ads được quản lý từ bảng điều khiển Ads.
Gói giá Flame đã bị xoá?
Vào tháng 1 năm 2020, chúng tôi đã xoá gói giá Flame (25 USD/tháng cho hạn mức bổ sung) khỏi danh sách lựa chọn cho người đăng ký mới. Người dùng gói hiện tại được cấp một khoảng thời gian ân hạn để di chuyển dự án của họ khỏi gói Flame.
Vào tháng 2 năm 2022, các dự án còn lại sử dụng gói giá Flame đã được hạ cấp xuống gói giá Spark.
Theo đó,
- Các dự án hiện có trong gói Spark và Blaze cũng như mọi dự án mới không thể chuyển sang hoặc đăng ký gói Flame nữa.
- Nếu bạn đã chuyển một dự án hiện có trong gói Flame sang một gói giá khác, thì dự án đó không thể quay lại gói Flame.
- Bạn có thể nâng cấp các dự án đã hạ cấp xuống gói Spark lên gói Blaze để tiếp tục sử dụng các dịch vụ có tính phí khác.
- Các nội dung tham chiếu đến kế hoạch Flame đã bị xoá khỏi tài liệu.
Bạn có câu hỏi khác về việc ngừng cung cấp gói Flame không? Hãy đọc một số câu hỏi thường gặp khác dưới đây.
Bạn muốn tìm hiểu về các gói giá khác mà Firebase cung cấp? Hãy truy cập vào trang giá của Firebase! Nếu muốn bắt đầu di chuyển bất kỳ dự án hiện có nào sang một gói giá khác, bạn có thể thực hiện việc đó trong bảng điều khiển Firebase cho dự án của mình.
Các câu hỏi thường gặp khác về việc ngừng cung cấp gói Flame
Tôi có một dự án, quy trình hoặc mô hình kinh doanh dựa trên chi phí cố định của Firebase. Tôi nên làm gì?
Đăng ký gói giá Blaze và nhớ đặt cảnh báo về ngân sách.
Tôi có thể được cấp quyền đặc biệt để tạo dự án mới trong gói Flame không?
Không, Firebase không cung cấp quyền truy cập đặc biệt cho các dự án để chuyển sang hoặc đăng ký gói Flame.
Tôi đã thay đổi dự án theo gói Flame thành một gói giá khác. Làm cách nào để thay đổi lại?
Bạn không thể chuyển sang gói Flame nữa. Để sử dụng các dịch vụ do gói Flame cung cấp, hãy đảm bảo rằng bạn đang sử dụng gói giá Blaze và cân nhắc thiết lập thông báo về ngân sách cho dự án của mình.
Dự án của tôi đã tự động chuyển sang một gói giá khác trong quá trình ngừng cung cấp gói Flame. Tôi nên làm gì?
Nếu dự án của bạn cần thêm hạn mức ngoài hạn mức được cung cấp trong gói Spark, bạn cần nâng cấp dự án lên gói giá Blaze.
Tại sao gói Flame không được cung cấp nữa?
Trong những năm qua, chúng tôi nhận thấy mức sử dụng gói Flame đang giảm dần và hầu hết các dự án sử dụng gói này đều không khai thác hết giá trị của gói. Việc duy trì gói giá này thường không hiệu quả về chi phí và chúng tôi cảm thấy rằng chúng tôi có thể phục vụ mọi người tốt hơn nếu các tài nguyên được chuyển sang các sáng kiến khác của Firebase.
Quyền riêng tư
Tôi có thể tìm thông tin về quyền riêng tư và bảo mật trong Firebase ở đâu?
Hãy xem trang Quyền riêng tư và bảo mật trong Firebase.
SDK Firebase có ghi lại bất kỳ thông tin sử dụng/chẩn đoán nào bên ngoài Analytics không?
Có. Tính năng này hiện chỉ dành cho iOS, nhưng có thể thay đổi trong tương lai. Theo mặc định, SDK Firebase cho nền tảng Apple bao gồm khung FirebaseCoreDiagnostics
. Firebase sử dụng khung này để thu thập thông tin chẩn đoán và sử dụng SDK nhằm giúp ưu tiên các tính năng cải tiến sản phẩm trong tương lai. FirebaseCoreDiagnostics
là không bắt buộc, vì vậy, nếu bạn muốn chọn không gửi nhật ký chẩn đoán Firebase, bạn có thể thực hiện việc này bằng cách huỷ liên kết thư viện khỏi ứng dụng. Bạn có thể duyệt xem toàn bộ nguồn, bao gồm cả các giá trị đã ghi lại, trên GitHub
A/B Testing
A/B Testing: Tôi có thể tạo và chạy bao nhiêu thử nghiệm?
Mỗi dự án được phép có tối đa 300 thử nghiệm, trong đó có thể có tối đa 24 thử nghiệm đang chạy, còn lại là bản nháp hoặc đã hoàn tất.
A/B Testing: Tại sao tôi không xem được các thử nghiệm sau khi huỷ liên kết và liên kết lại dự án với Google Analytics?
Việc liên kết với một tài sản Google Analytics khác sẽ khiến bạn mất quyền truy cập vào các thử nghiệm đã tạo trước đó. Để lấy lại quyền truy cập vào một thử nghiệm trước đó, hãy liên kết lại dự án của bạn với tài sản Google Analytics đã được liên kết khi tạo thử nghiệm.
A/B Testing: Tại sao tôi nhận được thông báo "Dự án không được liên kết với Google Analytics" khi tạo thử nghiệm Cấu hình từ xa?
Nếu bạn đã liên kết Firebase và Google Analytics nhưng vẫn thấy thông báo cho biết Google Analytics chưa được liên kết, hãy đảm bảo rằng có một luồng Analytics cho tất cả ứng dụng trong dự án của bạn. Hiện tại, tất cả ứng dụng trong một dự án phải được kết nối với một luồng Google Analytics để sử dụng tính năng Thử nghiệm A/B.
Bạn có thể tìm thấy danh sách tất cả các luồng đang hoạt động trên trang Thông tin chi tiết về việc tích hợp Google Analytics trong bảng điều khiển Firebase, truy cập từ settingsCài đặt dự án chevron_right Tích hợp chevron_right Google Analytics chevron_right Quản lý.
Bạn có thể giải quyết vấn đề này bằng cách tạo luồng Google Analytics cho mọi ứng dụng chưa có luồng. Có một số cách để tạo luồng cho các ứng dụng bị thiếu:
-
Nếu chỉ có một hoặc hai ứng dụng thiếu luồng Google Analytics được liên kết, bạn có thể chọn một trong các phương thức sau để thêm luồng Google Analytics:
- Xoá và thêm lại mọi ứng dụng không có luồng đang hoạt động trong bảng điều khiển Firebase.
- Trên Google Analytics Console, hãy chọn Quản trị, nhấp vào Luồng dữ liệu, sau đó nhấp vào Thêm luồng, thêm thông tin chi tiết còn thiếu của ứng dụng rồi nhấp vào Đăng ký ứng dụng.
-
Nếu bạn thiếu nhiều luồng ứng dụng, thì việc huỷ liên kết và liên kết lại tài sản Google Analytics là cách nhanh nhất và hiệu quả nhất để tạo các luồng ứng dụng bị thiếu:
- Trong settings Cài đặt dự án, hãy chọn Tích hợp.
- Trong thẻ Google Analytics, hãy nhấp vào Quản lý để truy cập vào phần cài đặt Firebase và Google Analytics.
- Ghi lại Mã tài sản của Google Analytics và Tài khoản Google Analytics được liên kết.
- Nhấp vào biểu tượng more_vert Thêm rồi chọn Huỷ liên kết Analytics khỏi dự án này.
-
Xem xét cảnh báo xuất hiện (đừng lo lắng; bạn sẽ liên kết lại chính tài sản đó ở bước tiếp theo), sau đó nhấp vào Huỷ liên kết Google Analytics.
Khi huỷ liên kết xong, bạn sẽ được chuyển hướng đến trang Tích hợp. - Trong thẻ Google Analytics, hãy nhấp vào Bật để bắt đầu quá trình liên kết lại.
- Chọn tài khoản Analytics của bạn trong danh sách Chọn tài khoản.
-
Bên cạnh mục Tự động tạo tài sản mới trong tài khoản này, hãy nhấp vào biểu tượng edit Chỉnh sửa, rồi chọn mã tài sản của bạn trong danh sách Tài sản Analytics xuất hiện.
Danh sách tất cả ứng dụng trong dự án của bạn sẽ xuất hiện. Các mối liên kết luồng hiện có cho mỗi ứng dụng sẽ được liệt kê và các ứng dụng không có luồng sẽ được tạo một luồng. - Nhấp vào Bật Google Analytics để liên kết lại tài sản.
- Nhấp vào Hoàn tất.
Nếu bạn vẫn gặp lỗi khi tạo thử nghiệm A/B bằng Cấu hình từ xa sau khi thực hiện các bước này, hãy liên hệ với Nhóm hỗ trợ Firebase.
AdMob
AdMob: Tôi có thể liên kết các ứng dụng Windows với Firebase không?
Không, ứng dụng Windows hiện không được hỗ trợ.
AdMob: Tại sao tôi không thể liên kết ứng dụng của mình với AdMob từ bảng điều khiển Firebase?
Bạn có thể liên kết ứng dụng AdMob với ứng dụng Firebase thông qua bảng điều khiển AdMob. Tìm hiểu cách thực hiện.
AdMob: Tôi cần có quyền hoặc quyền truy cập nào để liên kết ứng dụng Firebase với ứng dụng AdMob?
Để thực hiện việc liên kết này, bạn cần có quyền truy cập sau:
- AdMob: Bạn cần phải là quản trị viên AdMob.
- Firebase: Bạn phải có quyền
firebase.links.create
. Quyền này nằm trong vai trò Chủ sở hữu và vai trò Quản trị viên Firebase. - Google Analytics: Bạn phải có vai trò Chỉnh sửa hoặc Quản lý người dùng đối với tài sản được liên kết với dự án Firebase. Tìm hiểu thêm.
AdMob: Nhiều người dùng trong cùng một tài khoản AdMob có thể liên kết ứng dụng AdMob và ứng dụng Firebase không?
Đối với tài khoản AdMob nhiều người dùng, người dùng đã tạo đường liên kết đầu tiên đến Firebase và chấp nhận Điều khoản dịch vụ của Firebase là người dùng duy nhất có thể tạo đường liên kết mới giữa ứng dụng AdMob và ứng dụng Firebase.
AdMob: Để sử dụng AdMob, tôi nên sử dụng SDK nào?
Để sử dụng AdMob, hãy luôn sử dụng SDK Google Mobile Ads như mô tả trong phần Câu hỏi thường gặp này. Ngoài ra, nếu bạn muốn thu thập chỉ số người dùng cho AdMob, hãy thêm SDK Firebase cho Google Analytics vào ứng dụng của bạn.
- Đối với dự án iOS:
Nhập SDK Google Mobile Ads bằng cách làm theo hướng dẫn trong tài liệu về iOS AdMob. - Đối với dự án Android:
Thêm phần phụ thuộc cho SDK Google Mobile Ads vào tệpbuild.gradle
:
implementation 'com.google.android.gms:play-services-ads:23.6.0'
- Đối với dự án C++ và dự án Unity: Hãy làm theo hướng dẫn trong tài liệu tương ứng.
Analytics
Analytics: Tại sao bạn nên sử dụng Google Analytics khi sử dụng các sản phẩm Firebase?
Google Analytics là một giải pháp phân tích miễn phí và không giới hạn, hoạt động với các tính năng của Firebase để cung cấp thông tin chi tiết hữu ích. Tính năng này cho phép bạn xem nhật ký sự kiện trong Crashlytics, mức độ hiệu quả của thông báo trong FCM, hiệu suất của đường liên kết sâu cho Dynamic Links và dữ liệu mua hàng trong ứng dụng từ Google Play. Tính năng này hỗ trợ tính năng nhắm mục tiêu theo đối tượng nâng cao trong Remote Config, tính năng cá nhân hoá Remote Config và nhiều tính năng khác.
Google Analytics đóng vai trò là một lớp thông minh trong bảng điều khiển Firebase để cung cấp cho bạn nhiều thông tin chi tiết hữu ích hơn về cách phát triển ứng dụng chất lượng cao, tăng cơ sở người dùng và kiếm thêm tiền.
Để bắt đầu, hãy đọc tài liệu.
Analytics: Làm cách nào để kiểm soát cách dữ liệu Analytics của tôi được chia sẻ với phần còn lại của Firebase?
Theo mặc định, dữ liệu Google Analytics của bạn được dùng để nâng cao các tính năng khác của Firebase và Google. Bạn có thể kiểm soát cách dữ liệu Google Analytics được chia sẻ trong phần cài đặt dự án bất cứ lúc nào. Tìm hiểu thêm về Chế độ cài đặt chia sẻ dữ liệu.
Analytics: Làm cách nào để cập nhật chế độ cài đặt tài sản Analytics?
Trên trang Quản trị trong tài sản Google Analytics, bạn có thể cập nhật chế độ cài đặt tài sản, chẳng hạn như:
- Chế độ cài đặt cách chia sẻ dữ liệu
- Chế độ cài đặt việc giữ lại dữ liệu
- Chế độ cài đặt múi giờ và đơn vị tiền tệ
Để cập nhật chế độ cài đặt tài sản, hãy làm theo các bước sau:
- Trong bảng điều khiển Firebase, hãy chuyển đến settings > Cài đặt dự án.
- Chuyển đến thẻ Các công cụ tích hợp, sau đó trong thẻ Google Analytics, hãy nhấp vào Quản lý hoặc Xem mối liên kết.
- Nhấp vào đường liên kết đến tài khoản Google Analytics của bạn để mở chế độ cài đặt tài khoản và tài sản.
Analytics trong ứng dụng iOS của tôi: Tôi có thể cài đặt Analytics mà không cần tính năng phân bổ quảng cáo và thu thập IDFA không?
Có. Hãy xem trang Định cấu hình tính năng Thu thập và sử dụng dữ liệu để biết thêm thông tin chi tiết.
Analytics: Bản cập nhật tháng 10 năm 2021 có gì thay đổi trong mục Google Analytics?
Bạn có thể xem thông tin tóm tắt về những thay đổi này trong bài viết Chức năng mới của Google Analytics 4 trong Google Analytics cho Firebase trên Trung tâm trợ giúp Firebase.
Analytics: Tại sao tôi không thấy dữ liệu Analytics nào trong bảng điều khiển Firebase sau khi huỷ liên kết Firebase với Google Analytics?
Dữ liệu Analytics nằm trong tài sản Google Analytics chứ không nằm trong dự án Firebase. Nếu bạn xoá hoặc huỷ liên kết tài sản, thì Firebase sẽ không truy cập được dữ liệu Analytics và bạn sẽ thấy trang tổng quan Analytics trống trong bảng điều khiển Firebase. Xin lưu ý rằng vì dữ liệu vẫn nằm trong tài sản đã liên kết trước đó, nên bạn luôn có thể liên kết lại tài sản đó với Firebase và xem dữ liệu Analytics trong bảng điều khiển Firebase.
Việc liên kết một tài khoản Google Analytics hoàn toàn mới (và do đó là một tài sản Google Analytics mới) với dự án Firebase sẽ dẫn đến việc trang tổng quan Analytics trống trong bảng điều khiển Firebase. Tuy nhiên, nếu tài sản đã liên kết trước đó vẫn tồn tại, thì bạn có thể di chuyển dữ liệu hiện có từ tài sản cũ sang tài sản mới.
Analytics: Nếu tài sản Analytics và dữ liệu của tài sản đó đã bị xoá, thì có cách nào để khôi phục không?
Không. Nếu tài sản của bạn đã bị xoá, bạn sẽ không thể huỷ xoá tài sản đó hoặc truy xuất dữ liệu Analytics đã thu thập trước đó được lưu trữ trong tài sản đó.
Nếu muốn bắt đầu sử dụng lại Google Analytics, bạn có thể liên kết một tài sản mới hoặc một tài sản hiện có với dự án Firebase. Bạn có thể thực hiện việc liên kết này trong bảng điều khiển Firebase hoặc giao diện người dùng Google Analytics. Tìm hiểu thêm về cách liên kết tài sản Google Analytics với dự án Firebase.
Analytics: Nếu tài sản Analytics của tôi đã bị xoá, tôi có thể liên kết một tài sản Google Analytics mới với dự án Firebase và bắt đầu sử dụng lại Analytics không?
Nếu muốn bắt đầu sử dụng lại Google Analytics, bạn có thể liên kết một tài sản mới hoặc một tài sản hiện có với dự án Firebase. Bạn có thể thực hiện việc liên kết này trong bảng điều khiển Firebase hoặc giao diện người dùng Google Analytics. Tìm hiểu thêm về cách liên kết tài sản Google Analytics với dự án Firebase.
Xin lưu ý rằng vì tất cả dữ liệu Analytics được lưu trữ trong tài sản (không phải dự án Firebase), nên bạn không thể truy xuất dữ liệu Analytics đã thu thập trước đó.
Analytics: Việc xoá tài sản Analytics của tôi sẽ ảnh hưởng như thế nào đến các sản phẩm Firebase hoặc sản phẩm tích hợp của Google?
Một số sản phẩm của Firebase dựa vào tính năng tích hợp với Google Analytics. Nếu tài sản Analytics và dữ liệu của tài sản đó bị xoá, thì những điều sau sẽ xảy ra nếu bạn sử dụng các sản phẩm sau:
- Crashlytics – Bạn không thể xem người dùng không gặp sự cố, nhật ký đường dẫn và/hoặc cảnh báo về tốc độ nữa.
- Cloud Messaging và In-App Messaging – Bạn không thể sử dụng tiêu chí nhắm mục tiêu, chỉ số chiến dịch, phân khúc đối tượng và nhãn phân tích nữa.
- Remote Config – Bạn không thể sử dụng cấu hình được nhắm mục tiêu hoặc tính năng Cá nhân hoá được nữa.
- A/B Testing – Bạn không thể sử dụng A/B Testing nữa vì Google Analytics cung cấp thông tin đo lường thử nghiệm.
- Dynamic Links – Mọi tính năng dựa vào dữ liệu của Google Analytics sẽ bị gián đoạn.
Ngoài ra, các công cụ tích hợp sau đây cũng sẽ bị ảnh hưởng:
- Bạn không thể xuất dữ liệu Analytics sang BigQuery nữa.
- Bạn không thể tận dụng các tính năng tích hợp Google Ads hoặc tích hợp Google AdMob được nữa.
Analytics: Làm cách nào để phân khúc những người dùng chưa đáp ứng một số tiêu chí?
Bạn có thể định hình lại vấn đề bằng cách "nhắm mục tiêu tiêu cực" những người dùng này. Ví dụ: hãy đặt lại vấn đề thành "Không hiển thị quảng cáo cho những người đã mua hàng" và tạo một đối tượng gồm những người dùng đó để nhắm đến.
Analytics: Đối tượng và/hoặc sự kiện được xác định trong giao diện Google Analytics có xuất hiện trong bảng điều khiển Firebase không?
Đối tượng và thuộc tính người dùng của bạn sẽ được đồng bộ hoá. Đối với một số tính năng, bạn sẽ cần sử dụng giao diện Google Analytics, chẳng hạn như tính năng phân đoạn và phễu khép kín. Bạn có thể truy cập trực tiếp vào giao diện Google Analytics thông qua các đường liên kết sâu từ bảng điều khiển Firebase.
Mọi thay đổi bạn thực hiện từ bảng điều khiển Firebase cũng có thể được thực hiện trong Google Analytics và những thay đổi đó sẽ được phản ánh trong Firebase.
Authentication
Firebase Authentication: Những khu vực nào được hỗ trợ xác thực qua điện thoại?
Firebase Authentication hỗ trợ xác minh số điện thoại trên toàn cầu, nhưng không phải mạng nào cũng phân phối tin nhắn xác minh một cách đáng tin cậy. Các khu vực sau đây có tỷ lệ phân phối cao và có thể hoạt động tốt đối với phương thức xác thực qua điện thoại. Một số nhà mạng không hoạt động ở một khu vực do tỷ lệ giao hàng thành công thấp.
Khu vực | Mã |
---|---|
Quảng cáo | Andorra |
AE | Các Tiểu Vương quốc Ả Rập Thống nhất |
AF | Afghanistan |
AG | Antigua và Barbuda |
AL | Albania |
SÁNG | Armenia |
AO | Angola |
Thực tế tăng cường (AR) | Argentina |
AS | Samoa thuộc Hoa Kỳ |
AT | Áo |
AU | Úc |
AW | Aruba |
AZ | Azerbaijan |
BA | Bosnia và Herzegovina |
BB | Barbados |
BD | Bangladesh |
BE | Bỉ |
BF | Burkina Faso |
BG | Bulgaria |
BJ | Benin |
BM | Bermuda |
BN | Brunei Darussalam |
BO | Bolivia |
BR | Brazil |
BS | Bahamas |
BT | Bhutan |
BW | Botswana |
BỞI | Belarus |
BZ | Belize |
CA | Canada |
CD | Congo (Kinshasa) |
CF | Cộng hòa Trung Phi |
CG | Congo (Brazzaville) |
CH | Thụy Sĩ |
CI | Bờ Biển Ngà |
CK | Quần đảo Cook |
CL | Chile |
Campaign Manager | Cameroon |
CO | Colombia |
câu trả lời soạn trước | Costa Rica |
CV | Mũi Verde |
CW | Curaçao |
CY | Síp |
CZ | Cộng hòa Séc |
DE | Đức |
DJ | Djibouti |
DK | Đan Mạch |
Tin nhắn trực tiếp | Dominica |
DO | Cộng hòa Dominica |
DZ | Algeria |
EC | Ecuador |
EG | Ai Cập |
Tiếng Tây Ban Nha | Tây Ban Nha |
ET | Ethiopia |
FI | Phần Lan |
FJ | Fiji |
FK | Quần đảo Falkland (Malvinas) |
FM | Liên bang Micronesia |
FO | Quần đảo Faroe |
FR | Pháp |
GA | Gabon |
GB | Vương quốc Anh |
HS | Grenada |
GE | Georgia |
BT | Guiana thuộc Pháp |
GG | Guernsey |
GH | Ghana |
GI | Gibraltar |
GL | Greenland |
GM | Gambia |
TĐC | Guadeloupe |
GQ | Guinea Xích đạo |
GR | Hy Lạp |
GT | Guatemala |
GY | Guyana |
HK | Hong Kong, Đặc khu hành chính thuộc Trung Quốc |
HN | Honduras |
HR | Croatia |
hết hiệp I | Haiti |
HU (Đầu phát trung tâm) | Hungary |
giấy tờ tùy thân | Indonesia |
IE | Ireland |
IL | Israel |
IM | Đảo Man |
VÀO | Ấn Độ |
IQ | Iraq |
CNTT | Ý |
JE | Jersey |
JM | Jamaica |
JO | Jordan |
JP | Nhật Bản |
KE | Kenya |
KG | Kyrgyzstan |
KH | Campuchia |
KM | Comoros |
KN | Saint Kitts và Nevis |
KR | Hàn Quốc |
KW | Kuwait |
KY | Quần đảo Cayman |
KZ | Kazakhstan |
LA | Cộng hòa dân chủ nhân dân Lào |
LCDCB | Lebanon |
LC | Saint Lucia |
LI | Liechtenstein |
LK | Sri Lanka |
LS | Lesotho |
LT | Lithuania |
LU | Luxembourg |
LV | Latvia |
LY | Libya |
MA | Morocco |
MD | Moldova |
ME | Montenegro |
MF | Saint-Martin (phần thuộc Pháp) |
MG | Madagascar |
MK | Cộng hoà Macedonia |
MM | Myanmar |
MN | Mông Cổ |
MO | Macao, Đặc khu hành chính Trung Quốc |
MS | Montserrat |
MT | Malta |
MU | Mauritius |
MW | Malawi |
MX | Mexico |
MY | Malaysia |
MZ | Mozambique |
NA | Namibia |
NC | New Caledonia |
ĐB | Niger |
NF | Đảo Norfolk |
NG | Nigeria |
NI | Nicaragua |
NL | Hà Lan |
KHÔNG | Na Uy |
NP | Nepal |
NZ | New Zealand |
OM | Oman |
PA | Panama |
PE | Peru |
PG | Papua New Guinea |
PH | Philippines |
PK | Pakistan |
PL | Ba Lan |
CHIỀU | Saint Pierre và Miquelon |
PR | Puerto Rico |
PS | Lãnh thổ Palestine |
PT | Bồ Đào Nha |
PY | Paraguay |
Đảm bảo chất lượng | Qatar |
RE | Réunion |
RO | Romania |
RS | Serbia |
RU | Liên bang Nga |
RW | Rwanda |
STĐ | Ả Rập Xê Út |
SC | Seychelles |
ĐN | Thụy Điển |
SG | Singapore |
Đá ra ngoài | Saint Helena |
SI | Slovenia |
SK | Slovakia |
SL | Sierra Leone |
SN | Senegal |
SR | Suriname |
ST | São Tomé và Príncipe |
SV | El Salvador |
SZ | Swaziland |
TC | Quần đảo Turks và Caicos |
TG | Togo |
TH | Thái Lan |
trưởng nhóm | Đông Timor |
TM | Turkmenistan |
ĐẾN | Tonga |
TR | Thổ Nhĩ Kỳ |
TT | Trinidad và Tobago |
TW | Đài Loan, Trung Hoa Dân Quốc |
TZ | Cộng hòa Thống nhất Tanzania |
UA | Ukraina |
UG | Uganda |
Hoa Kỳ | Hoa Kỳ |
UY | Uruguay |
UZ | Uzbekistan |
VC | Saint Vincent và Grenadines |
VE | Venezuela (Cộng hoà Bolivar) |
VG | Quần đảo Virgin thuộc Anh |
VI | Quần đảo Virgin, Hoa Kỳ |
VN | Việt Nam |
WS | Samoa |
YE | Yemen |
YT | Mayotte |
ZA | Nam Phi |
ZM | Zambia |
ZW | Zimbabwe |
Firebase Authentication: Điều gì đã xảy ra với tin nhắn SMS miễn phí trong gói Spark?
Kể từ tháng 9 năm 2024, để cải thiện tính bảo mật và chất lượng dịch vụ của tính năng Xác thực qua điện thoại, các dự án Firebase phải được liên kết với một tài khoản Cloud Billing để bật và sử dụng Dịch vụ SMS.
Firebase Authentication: Làm cách nào để ngăn chặn hành vi lạm dụng SMS khi sử dụng tính năng xác thực qua điện thoại?
Để bảo vệ dự án của bạn khỏi việc tăng lưu lượng truy cập qua SMS và hành vi sử dụng sai API, hãy làm theo các bước sau:
Cân nhắc việc đặt chính sách về khu vực gửi tin nhắn SMS
Xem mức sử dụng SMS theo khu vực.
Tìm những khu vực có số lượng tin nhắn SMS đã gửi rất cao và số lượng tin nhắn SMS đã xác minh rất thấp (hoặc bằng 0). Tỷ lệ xác minh/gửi là tỷ lệ thành công của bạn. Tỷ lệ thành công hợp lý thường nằm trong khoảng từ 70 đến 85% vì SMS không phải là giao thức phân phối được đảm bảo và một số khu vực có thể gặp phải hành vi lạm dụng. Tỷ lệ thành công dưới 50% có nghĩa là có nhiều tin nhắn SMS được gửi nhưng ít lượt đăng nhập thành công. Đây là một chỉ báo phổ biến về hành vi xấu và hoạt động bơm lưu lượng truy cập qua SMS.
Sử dụng Chính sách về khu vực gửi SMS để từ chối các khu vực gửi SMS có tỷ lệ thành công thấp hoặc chỉ cho phép một số khu vực nhất định nếu ứng dụng của bạn chỉ dành cho việc phân phối ở một số thị trường nhất định.
Giới hạn các miền xác thực được uỷ quyền
Sử dụng trang tổng quan về Cài đặt xác thực để quản lý các miền được uỷ quyền. Theo mặc định, miền localhost
được thêm vào các miền xác thực đã phê duyệt để đơn giản hoá quá trình phát triển. Cân nhắc xoá localhost
khỏi các miền được uỷ quyền trong dự án phiên bản chính thức để ngăn chặn các bên độc hại chạy mã trên localhost
của họ nhằm truy cập vào dự án phiên bản chính thức của bạn.
Bật và thực thi tính năng Kiểm tra ứng dụng
Bật tính năng Kiểm tra ứng dụng để giúp bảo vệ dự án của bạn khỏi hành vi sử dụng sai cách API bằng cách chứng thực rằng các yêu cầu chỉ đến từ các ứng dụng được liên kết với dự án của bạn.
Để sử dụng tính năng Kiểm tra ứng dụng với Firebase Authentication, bạn phải nâng cấp lên Firebase Authentication with Identity Platform.
Hãy nhớ rằng bạn cần thực thi tính năng Xác thực bằng quy trình Kiểm tra ứng dụng trong bảng điều khiển của Firebase (hãy cân nhắc giám sát lưu lượng truy cập trước khi thực thi). Ngoài ra, hãy kiểm tra kỹ danh sách trang web được phê duyệt của reCAPTCHA Enterprise để xác thực rằng danh sách này chỉ chứa các trang web chính thức và danh sách ứng dụng được đăng ký cho dự án của bạn trong App Check là chính xác.
Xin lưu ý rằng tính năng Kiểm tra ứng dụng giúp bảo vệ khỏi các cuộc tấn công tự động bằng cách xác nhận rằng lệnh gọi đến từ một trong các ứng dụng bạn đã đăng ký. Điều này không ngăn người dùng sử dụng ứng dụng của bạn theo cách không mong muốn (ví dụ: bắt đầu rồi không bao giờ hoàn tất quy trình đăng nhập để tạo tin nhắn SMS đã gửi).
Firebase Authentication: Các số điện thoại được chuyển sang nhà mạng mới có được hỗ trợ xác thực qua điện thoại không?
Hiện tại, những số điện thoại được chuyển đổi giữa các nhà mạng sẽ khiến tất cả tin nhắn SMS không gửi được đến người dùng cuối đó. Hiện chưa có giải pháp và Firebase đang nỗ lực giải quyết vấn đề này.
Firebase Authentication: Trong ứng dụng Android, tại sao tôi gặp lỗi sau:
Google sign in failed
?
Google sign in failed
Hãy làm theo các bước khắc phục sự cố trong phần Câu hỏi thường gặp này nếu bạn gặp lỗi sau:
GoogleFragment: Google sign in failed
com.google.android.gms.common.api.ApiException: 13: Unable to get token.
at
com.google.android.gms.internal.auth-api.zbay.getSignInCredentialFromIntent(com.google.android.gms:play-services-auth@@20.3.0:6)
Đảm bảo bạn đã bật tính năng đăng nhập bằng Google đúng cách làm nhà cung cấp xác thực:
Trong bảng điều khiển Firebase, hãy mở mục Authentication.
Trong thẻ Phương thức đăng nhập, hãy tắt rồi bật lại phương thức đăng nhập bằng Google (ngay cả khi phương thức này đã được bật):
Mở phương thức đăng nhập bằng Google, tắt phương thức này rồi nhấp vào Lưu.
Mở lại phương thức đăng nhập bằng Google, bật phương thức này rồi nhấp vào Lưu.
Đảm bảo rằng ứng dụng của bạn đang sử dụng tệp cấu hình Firebase mới nhất (
google-services.json
).
Tải tệp cấu hình của ứng dụng.Kiểm tra xem bạn có còn gặp lỗi này không. Nếu có, hãy chuyển sang bước khắc phục sự cố tiếp theo.
Đảm bảo có các ứng dụng OAuth 2.0 cơ bản bắt buộc.
Trên trang Thông tin xác thực của bảng điều khiển Google Cloud, hãy tìm trong phần Mã ứng dụng khách OAuth 2.0.
Nếu ứng dụng OAuth 2.0 không xuất hiện (và bạn đã thực hiện tất cả các bước khắc phục sự cố ở trên), hãy liên hệ với Nhóm hỗ trợ.
Firebase Authentication: Trong ứng dụng nền tảng Apple, tại sao tôi lại gặp lỗi sau:
You must specify <clientID> in <GIDConfiguration>
?
You must specify <clientID> in <GIDConfiguration>
Hãy làm theo các bước khắc phục sự cố trong phần Câu hỏi thường gặp này nếu bạn gặp lỗi sau:
You must specify |clientID| in |GIDConfiguration|
Đảm bảo bạn đã bật tính năng đăng nhập bằng Google đúng cách làm nhà cung cấp xác thực:
Trong bảng điều khiển Firebase, hãy mở mục Authentication.
Trong thẻ Phương thức đăng nhập, hãy tắt rồi bật lại phương thức đăng nhập bằng Google (ngay cả khi phương thức này đã được bật):
Mở phương thức đăng nhập bằng Google, tắt phương thức này rồi nhấp vào Lưu.
Mở lại phương thức đăng nhập bằng Google, bật phương thức này rồi nhấp vào Lưu.
Đảm bảo rằng ứng dụng của bạn đang sử dụng tệp cấu hình Firebase mới nhất (
GoogleService-Info.plist
).
Tải tệp cấu hình của ứng dụng.Kiểm tra xem bạn có còn gặp lỗi này không. Nếu có, hãy chuyển sang bước khắc phục sự cố tiếp theo.
Đảm bảo có các ứng dụng OAuth 2.0 cơ bản bắt buộc.
Trên trang Thông tin xác thực của bảng điều khiển Google Cloud, hãy tìm trong phần Mã ứng dụng khách OAuth 2.0.
Nếu ứng dụng OAuth 2.0 không xuất hiện (và bạn đã thực hiện tất cả các bước khắc phục sự cố ở trên), hãy liên hệ với Nhóm hỗ trợ.
Firebase Authentication: Trong ứng dụng web của mình, tại sao tôi gặp lỗi sau:
AuthErrorCode.INVALID_OAUTH_CLIENT_ID
?
AuthErrorCode.INVALID_OAUTH_CLIENT_ID
Hãy làm theo các bước khắc phục sự cố trong phần Câu hỏi thường gặp này nếu bạn gặp lỗi sau:
AuthErrorCode.INVALID_OAUTH_CLIENT_ID
Đảm bảo bạn đã bật tính năng đăng nhập bằng Google đúng cách làm nhà cung cấp xác thực:
Trong bảng điều khiển Firebase, hãy mở mục Authentication.
Trong thẻ Phương thức đăng nhập, hãy tắt rồi bật lại phương thức đăng nhập bằng Google (ngay cả khi phương thức này đã được bật):
Mở phương thức đăng nhập bằng Google, tắt phương thức này rồi nhấp vào Lưu.
Mở lại phương thức đăng nhập bằng Google, bật phương thức này rồi nhấp vào Lưu.
Ngoài ra, trong phần cấu hình trình cung cấp dịch vụ đăng nhập Google của mục Authentication, hãy đảm bảo rằng mã ứng dụng khách và khoá bí mật OAuth khớp với ứng dụng web hiển thị trong trang Thông tin xác thực của bảng điều khiển Google Cloud (xem trong mục Mã ứng dụng khách OAuth 2.0).
Firebase Authentication: Trong ứng dụng web của tôi, tại sao việc đăng nhập bằng lệnh chuyển hướng lại không thành công với lỗi sau:
This domain YOUR_REDIRECT_DOMAIN is not
authorized to run this operation
?
This domain YOUR_REDIRECT_DOMAIN is not
authorized to run this operation
Hãy làm theo các bước khắc phục sự cố trong phần Câu hỏi thường gặp này nếu bạn gặp lỗi sau:
This domain YOUR_REDIRECT_DOMAIN is not authorized to run this operation.
Lỗi này có thể là do miền chuyển hướng của bạn không được liệt kê là miền được uỷ quyền cho Firebase Authentication hoặc khoá API mà bạn sử dụng với Dịch vụ Firebase Authentication không hợp lệ.
Trước tiên, hãy đảm bảo rằng YOUR_REDIRECT_DOMAIN nằm trong danh sách miền được uỷ quyền cho dự án Firebase của bạn. Nếu miền chuyển hướng của bạn đã có trong danh sách đó, hãy tiếp tục khắc phục sự cố khoá API không hợp lệ.
Theo mặc định, SDK JS Firebase Authentication dựa vào khoá API cho dự án Firebase được gắn nhãn là Browser key
và sử dụng khoá này để xác minh rằng URL chuyển hướng đăng nhập là hợp lệ theo danh sách các miền được uỷ quyền.
Authentication nhận khoá API này tuỳ thuộc vào cách bạn truy cập vào SDK Authentication:
Nếu bạn sử dụng Trình trợ giúp xác thực do Hosting cung cấp để đăng nhập người dùng bằng SDK JS Authentication, thì Firebase sẽ tự động lấy khoá API cùng với phần cấu hình Firebase còn lại mỗi khi bạn triển khai đến Firebase Hosting. Đảm bảo rằng
authDomain
trong ứng dụng webfirebaseConfig
được định cấu hình đúng cách để sử dụng một trong các miền cho trang web Hosting đó. Bạn có thể xác minh điều này bằng cách chuyển đếnhttps://authDomain__/firebase/init.json
và kiểm tra để đảm bảoprojectId
khớp vớifirebaseConfig
.Nếu tự lưu trữ mã đăng nhập, thì bạn có thể sử dụng tệp
__/firebase/init.json
để cung cấp cấu hình Firebase cho trình trợ giúp Chuyển hướng SDK JS Authentication tự lưu trữ. Khoá API vàprojectId
được liệt kê trong tệp cấu hình này phải khớp với ứng dụng webfirebaseConfig
.
Kiểm tra để đảm bảo khoá API này chưa bị xoá: Chuyển đến bảng điều khiển API và dịch vụ > Thông tin xác thực trong Google Cloud Console, nơi tất cả khoá API cho dự án của bạn được liệt kê.
Nếu
Browser key
chưa bị xoá, hãy kiểm tra những điều sau:Đảm bảo API Firebase Authentication có trong danh sách API được phép để khoá truy cập (tìm hiểu thêm về các quy định hạn chế đối với API cho khoá API).
Nếu bạn tự lưu trữ mã đăng nhập, hãy đảm bảo khoá API được liệt kê trong tệp
__/firebase/init.json
khớp với khoá API trong Cloud Console. Chỉnh sửa khoá trong tệp (nếu cần) rồi triển khai lại ứng dụng.Nếu
Browser key
đã bị xoá, bạn có thể yêu cầu Firebase tạo một khoá API mới cho bạn: Trong bảng điều khiển Firebase, hãy chuyển đến settings > Cài đặt dự án, sau đó trong phần Ứng dụng của bạn, hãy nhấp vào ứng dụng web của bạn. Thao tác này sẽ tự động tạo một khoá API mà bạn có thể thấy trong phần Thiết lập và định cấu hình SDK cho ứng dụng web của bạn.
Xin lưu ý rằng trong bảng điều khiển Cloud, khoá API mới này sẽ không được gọi là
Browser key
; thay vào đó, khoá này sẽ có cùng tên với biệt hiệu của Ứng dụng web Firebase. Nếu bạn quyết định thêm các quy tắc hạn chế API vào khoá API mới này, hãy đảm bảo API Firebase Authentication có trong danh sách API được phép.Sau khi tạo khoá API mới, hãy hoàn tất các bước có thể áp dụng bên dưới:
Nếu bạn sử dụng URL Hosting được đặt trước, hãy triển khai lại ứng dụng của bạn trên Firebase để ứng dụng có thể tự động lấy khoá API mới cùng với phần cấu hình Firebase còn lại.
Nếu bạn tự lưu trữ mã đăng nhập, hãy sao chép khoá API mới và thêm khoá đó vào tệp
__/firebase/init.json
, sau đó triển khai lại ứng dụng.
Firebase Authentication: Làm cách nào để tạo ứng dụng web OAuth theo cách thủ công?
Mở trang Thông tin xác thực của bảng điều khiển Google Cloud.
Ở đầu trang, hãy chọn Tạo thông tin xác thực > Mã ứng dụng khách OAuth.
Nếu bạn được nhắc định cấu hình màn hình xin phép, hãy làm theo hướng dẫn trên màn hình, sau đó tiếp tục thực hiện các bước sau trong phần Câu hỏi thường gặp này.
Tạo ứng dụng web OAuth:
Đối với Loại ứng dụng, hãy chọn Ứng dụng web.
Đối với Gốc JavaScript được uỷ quyền, hãy thêm nội dung sau:
http://localhost
http://localhost:5000
https://PROJECT_ID.firebaseapp.com
https://PROJECT_ID.web.app
Đối với URI chuyển hướng được uỷ quyền, hãy thêm nội dung sau:
https://PROJECT_ID.firebaseapp.com/__/auth/handler
https://PROJECT_ID.web.app/__/auth/handler
Lưu ứng dụng khách OAuth.
Sao chép mã ứng dụng khách OAuth mới và thông tin xác thực ứng dụng khách vào bảng nhớ tạm.
Trong bảng điều khiển Firebase, hãy mở mục Authentication.
Trong thẻ Sign in method (Phương thức đăng nhập), hãy mở trình cung cấp Google sign-in (Đăng nhập bằng Google), sau đó dán mã ứng dụng khách và khoá bí mật của máy chủ web mà bạn vừa tạo và sao chép từ bảng điều khiển Google Cloud. Nhấp vào Lưu.
Firebase Authentication: Làm cách nào để xác định %APP_NAME%
cho mẫu email xác nhận có thể được gửi đến người dùng khi họ đăng ký bằng địa chỉ email và mật khẩu?
Trước tháng 12 năm 2022, %APP_NAME%
trong mẫu email được điền sẵn tên thương hiệu OAuth được tự động cấp mỗi khi một ứng dụng Android được đăng ký trong dự án Firebase. Giờ đây, vì thương hiệu OAuth chỉ được cung cấp khi bạn bật tính năng Đăng nhập bằng Google, nên phần sau đây mô tả cách xác định %APP_NAME%
:
Nếu có tên thương hiệu OAuth, thì
%APP_NAME%
trong mẫu email sẽ là tên thương hiệu OAuth (tương tự như hành vi trước tháng 12 năm 2022).Nếu tên thương hiệu OAuth không có sẵn, thì sau đây là cách xác định
%APP_NAME%
trong mẫu email:Đối với ứng dụng web,
%APP_NAME%
sẽ là tên trang web Firebase Hosting mặc định (giá trị đứng trước.firebaseapp.com
và.web.app
và thường là mã dự án Firebase).Đối với ứng dụng di động:
Nếu tên gói Android hoặc mã nhận dạng gói iOS có trong yêu cầu, thì
%APP_NAME%
sẽ là tên ứng dụng dùng trong Cửa hàng Play hoặc App Store (tương ứng).Nếu không,
%APP_NAME%
sẽ là tên trang web Firebase Hosting mặc định (giá trị đứng trước.firebaseapp.com
và.web.app
và thường là mã dự án Firebase).
Xin lưu ý rằng nếu không tìm nạp được tên trang web Firebase Hosting mặc định, thì phương án dự phòng cuối cùng là sử dụng mã dự án Firebase làm
%APP_NAME%
.
Cloud Functions
Hỗ trợ thời gian chạy Cloud Functions
Làm cách nào để nâng cấp lên phiên bản Node.js mới nhất được hỗ trợ?
- Đảm bảo bạn đang sử dụng gói giá Blaze.
- Đảm bảo bạn đang sử dụng phiên bản mới nhất của CLI Firebase.
- Cập nhật trường
engines
trongpackage.json
của hàm. - Bạn có thể kiểm thử các thay đổi bằng Firebase Local Emulator Suite.
- Triển khai lại tất cả các hàm.
Làm cách nào để đảm bảo rằng tôi đã triển khai các hàm của mình vào một môi trường thời gian chạy Node.js cụ thể?
Trong bảng điều khiển Firebase, hãy chuyển đến trang tổng quan về hàm, chọn một hàm rồi kiểm tra ngôn ngữ của hàm trong phần Thông tin chi tiết bổ sung.
Tôi sử dụng Tiện ích Firebase. Tôi có chịu ảnh hưởng của các bản cập nhật về môi trường thời gian chạy của Cloud Functions không?
Có. Vì các tiện ích sử dụng Hàm trên đám mây, nên bạn cần cập nhật thời gian chạy của các tiện ích theo tiến trình của Hàm trên đám mây.
Bạn nên định kỳ cập nhật lên phiên bản mới nhất của từng trình bổ trợ được cài đặt trong dự án. Bạn có thể nâng cấp các tiện ích của dự án thông qua bảng điều khiển Firebase hoặc CLI Firebase.
Giá Cloud Functions
Tại sao tôi cần có tài khoản thanh toán để sử dụng Cloud Functions for Firebase?
Cloud Functions for Firebase dựa vào một số dịch vụ có tính phí của Google. Các hoạt động triển khai hàm mới bằng Firebase CLI 11.2.0 trở lên dựa vào Cloud Build và Artifact Registry. Các bản triển khai cho các phiên bản cũ hơn cũng sử dụng Cloud Build theo cách tương tự, nhưng dựa vào Container Registry và Cloud Storage để lưu trữ thay vì Artifact Registry. Ngoài mức giá hiện tại, bạn sẽ phải trả phí khi sử dụng các dịch vụ này.
Dung lượng lưu trữ cho Firebase CLI 11.2.0 trở lên
Artifact Registry cung cấp các vùng chứa mà trong đó các hàm chạy. Artifact Registry cung cấp 500 MB đầu tiên miễn phí, vì vậy, các lần triển khai hàm đầu tiên của bạn có thể không phải trả phí. Trên ngưỡng đó, mỗi GB bộ nhớ bổ sung sẽ được tính phí 0,10 USD/tháng.
Không gian lưu trữ cho Firebase CLI 11.1.x và các phiên bản trước đó
Đối với các hàm được triển khai cho các phiên bản cũ, Container Registry sẽ cung cấp các vùng chứa mà các hàm chạy trong đó. Bạn sẽ được tính phí cho mỗi vùng chứa cần thiết để triển khai một hàm. Bạn có thể nhận thấy các khoản phí nhỏ cho mỗi vùng chứa được lưu trữ.Ví dụ: 1 GB bộ nhớ sẽ được phí 0, 026 USD mỗi tháng.
Để hiểu rõ hơn về những thay đổi có thể xảy ra đối với hoá đơn của bạn, vui lòng xem những thông tin sau
- Giá Cloud Functions: Mức miễn phí hiện tại không thay đổi.
- Giá của Cloud Build: Cloud Build cung cấp một cấp miễn phí.
- Giá Artifact Registry.
- Giá Container Registry.
Cloud Functions for Firebase có còn sử dụng miễn phí không?
Có. Trên gói Blaze, Cloud Functions cung cấp một cấp không tính phí cho các lệnh gọi, thời gian tính toán và lưu lượng truy cập Internet. 2.000.000 lệnh gọi đầu tiên, 400.000 GB-giây, 200.000 CPU-giây và 5 GB lưu lượng truy cập Internet ra ngoài được cung cấp miễn phí mỗi tháng. Bạn chỉ phải trả phí đối với mức sử dụng vượt quá các ngưỡng đó.
Sau 500 MB bộ nhớ miễn phí đầu tiên, mỗi thao tác triển khai sẽ phải trả phí nhỏ cho không gian lưu trữ dùng cho vùng chứa của hàm. Nếu quy trình phát triển của bạn phụ thuộc vào việc triển khai các hàm để kiểm thử, bạn có thể giảm thiểu thêm chi phí bằng cách sử dụng Firebase Local Emulator Suite trong quá trình phát triển.
Xem Các gói giá của Firebase và các trường hợp ví dụ về Mức giá Cloud Functions.
Firebase có dự định tăng hạn mức và giới hạn cho Cloud Functions for Firebase không?
Không. Chúng tôi không có kế hoạch thay đổi hạn mức, ngoại trừ việc xoá giới hạn thời gian tạo bản dựng tối đa; thay vì nhận lỗi hoặc cảnh báo khi đạt đến hạn mức bản dựng hằng ngày là 120 phút, bạn sẽ được tính phí theo các điều khoản của gói giá Blaze. Xem phần Hạn mức và hạn mức.
Tôi có thể nhận khoản tín dụng Google Cloud 300 USD không?
Có, bạn có thể tạo tài khoản Cloud Billing trong bảng điều khiển Google Cloud để nhận khoản tín dụng trị giá 300 USD, sau đó liên kết tài khoản Cloud Billing đó với một dự án Firebase.
Tìm hiểu thêm về khoản tín dụng Google Cloud tại đây.
Xin lưu ý rằng nếu làm như vậy, bạn phải thiết lập gói giá Blaze trong bảng điều khiển Firebase để dự án của bạn tiếp tục hoạt động sau khi hết khoản tín dụng 300 USD.
Tôi muốn tham gia một lớp học lập trình để tìm hiểu về Firebase. Bạn có thể cung cấp cho tôi một tài khoản thanh toán tạm thời không?
Không, xin lỗi. Bạn có thể sử dụng trình mô phỏng Firebase để phát triển mà không cần có tài khoản Cloud Billing. Ngoài ra, hãy thử đăng ký dùng thử miễn phí Google Cloud. Nếu bạn vẫn gặp sự cố khi thanh toán hoá đơn do thay đổi này, hãy liên hệ với Nhóm hỗ trợ Firebase.
Tôi lo mình sẽ phải trả một hoá đơn khổng lồ.
Bạn có thể thiết lập cảnh báo ngân sách trong bảng điều khiển Google Cloud để giúp kiểm soát chi phí. Ngoài ra, bạn có thể đặt giới hạn về số lượng thực thể được tính phí được tạo cho mỗi hàm. Để biết chi phí cho các tình huống thông thường, hãy xem các ví dụ về Giá của Cloud Functions.
Làm cách nào để kiểm tra các khoản phí thanh toán hiện tại của tôi?
Xem trang tổng quan Sử dụng và thanh toán trong bảng điều khiển Firebase.
Tôi sử dụng Tiện ích Firebase. Tôi có cần tài khoản thanh toán không?
Có. Vì các tiện ích sử dụng Hàm trên đám mây, nên các tiện ích sẽ phải chịu mức phí giống như các hàm khác.
Để sử dụng các tiện ích, bạn cần nâng cấp lên gói giá Blaze. Bạn sẽ phải trả một khoản phí nhỏ (thường là khoảng 0,01 đô la mỗi tháng cho các tài nguyên Firebase mà mỗi tiện ích bạn cài đặt cần đến (ngay cả khi bạn không sử dụng các tài nguyên đó), ngoài mọi khoản phí liên quan đến việc bạn sử dụng các dịch vụ Firebase.
Cloud Messaging
Cloud Messaging: Điểm khác biệt giữa trình soạn thảo Thông báo và Cloud Messaging là gì?
Firebase Cloud Messaging cung cấp một bộ tính năng nhắn tin đầy đủ thông qua SDK ứng dụng và giao thức máy chủ HTTP và XMPP. Đối với các trường hợp triển khai có yêu cầu gửi tin nhắn phức tạp hơn, FCM là lựa chọn phù hợp.
Trình soạn thông báo là một giải pháp nhắn tin không máy chủ, gọn nhẹ được xây dựng trên Firebase Cloud Messaging. Với bảng điều khiển đồ hoạ thân thiện với người dùng và giảm các yêu cầu về lập trình, trình soạn thảo Thông báo cho phép người dùng dễ dàng gửi thông báo để thu hút lại và giữ chân người dùng, thúc đẩy sự phát triển của ứng dụng và hỗ trợ các chiến dịch tiếp thị.
Chức năng | Trình soạn thông báo | Cloud Messaging | |
---|---|---|---|
Mục tiêu | Một thiết bị | ||
Ứng dụng đã đăng ký chủ đề (ví dụ: thời tiết) | |||
Ứng dụng trong phân khúc người dùng được xác định trước (ứng dụng, phiên bản, ngôn ngữ) | |||
Khách hàng trong đối tượng phân tích được chỉ định | |||
Ứng dụng trong nhóm thiết bị | |||
Truyền từ máy khách đến máy chủ | |||
Loại thông báo | Thông báo có kích thước tối đa 2 kb | ||
Tin nhắn dữ liệu có kích thước tối đa 4 kb | |||
Giao hàng | Ngay lập tức | ||
Giờ địa phương của thiết bị ứng dụng trong tương lai | |||
Analytics | Tính năng thu thập số liệu phân tích về Thông báo và số liệu phân tích phễu tích hợp sẵn |
Cloud Messaging: Apple đã thông báo rằng họ sẽ ngừng sử dụng giao thức tệp nhị phân cũ cho APN. Tôi có cần làm gì không?
Không. Firebase Cloud Messaging đã chuyển sang giao thức APN dựa trên HTTP/2 vào năm 2017. Nếu đang sử dụng FCM để gửi thông báo đến các thiết bị iOS, bạn không cần làm gì cả.
Cloud Messaging: Tôi có cần sử dụng các dịch vụ khác của Firebase để sử dụng FCM không?
Bạn có thể sử dụng Firebase Cloud Messaging làm thành phần độc lập, tương tự như cách bạn đã làm với GCM, mà không cần sử dụng các dịch vụ Firebase khác.
Cloud Messaging: Tôi là một nhà phát triển Google Cloud Messaging (GCM) hiện tại. Tôi có nên chuyển sang Firebase Cloud Messaging không?
FCM là phiên bản mới của GCM thuộc thương hiệu Firebase. Firebase Cloud Messaging kế thừa cơ sở hạ tầng cốt lõi của GCM, với các SDK mới giúp việc phát triển Cloud Messaging trở nên dễ dàng hơn.
Sau đây là các lợi ích của việc nâng cấp lên SDK FCM:
- Phát triển ứng dụng đơn giản hơn. Bạn không cần phải tự viết logic đăng ký hoặc thử lại gói thuê bao nữa.
- Giải pháp thông báo sẵn có. Bạn có thể sử dụng Trình soạn thông báo, một giải pháp thông báo không cần máy chủ có bảng điều khiển web cho phép mọi người gửi thông báo để nhắm đến các đối tượng cụ thể dựa trên thông tin chi tiết từ Google Analytics.
Để nâng cấp từ SDK GCM lên SDK FCM, hãy xem hướng dẫn về cách di chuyển ứng dụng Android và iOS.
Cloud Messaging: Tại sao các thiết bị mục tiêu của tôi dường như không nhận được thông báo?
Khi có vẻ như thiết bị chưa nhận được tin nhắn thành công, trước tiên, hãy kiểm tra hai nguyên nhân có thể xảy ra sau:
Xử lý thông báo trên nền trước cho thông báo. Ứng dụng khách cần thêm logic xử lý thông báo để xử lý thông báo khi ứng dụng chạy ở nền trước trên thiết bị. Xem thông tin chi tiết về iOS và Android.
Hạn chế của tường lửa mạng. Nếu tổ chức của bạn có một tường lửa hạn chế lưu lượng truy cập đến hoặc từ Internet, bạn cần định cấu hình tường lửa đó để cho phép kết nối với FCM để các ứng dụng khách Firebase Cloud Messaging của bạn nhận được thông báo. Các cổng cần mở là:
- 5228
- 5229
- 5230
FCM thường sử dụng 5228, nhưng đôi khi cũng sử dụng 5229 và 5230. FCM không cung cấp IP cụ thể, vì vậy, bạn nên cho phép tường lửa chấp nhận các kết nối đi đến tất cả địa chỉ IP có trong các khối IP được liệt kê trong ASN 15169 của Google.
Cloud Messaging: Tôi đã triển khai onMessageReceived
trong ứng dụng Android, nhưng ứng dụng này không được gọi.
Khi ứng dụng của bạn chạy ở chế độ nền,
tin nhắn thông báo sẽ hiển thị trong khay hệ thống và onMessageReceived
sẽ không được gọi. Đối với thông báo có tải trọng dữ liệu, thông báo sẽ hiển thị trong khay hệ thống và dữ liệu đi kèm với thông báo có thể được truy xuất từ ý định được khởi chạy khi người dùng nhấn vào thông báo.
Để biết thêm thông tin, hãy xem phần Nhận và xử lý thông báo.
Trình soạn thông báo: Điểm khác biệt giữa trình soạn thông báo và Cloud Messaging là gì?
Trình soạn thông báo là một giải pháp nhắn tin không máy chủ, gọn nhẹ được xây dựng trên Firebase Cloud Messaging. Với bảng điều khiển đồ hoạ thân thiện với người dùng và giảm các yêu cầu về lập trình, trình soạn thảo Thông báo cho phép người dùng dễ dàng gửi thông báo để thu hút lại và giữ chân người dùng, thúc đẩy sự phát triển của ứng dụng và hỗ trợ các chiến dịch tiếp thị.
Firebase Cloud Messaging cung cấp một bộ tính năng nhắn tin đầy đủ thông qua SDK ứng dụng và giao thức máy chủ HTTP và XMPP. Đối với các trường hợp triển khai có yêu cầu gửi tin nhắn phức tạp hơn, FCM là lựa chọn phù hợp.
Dưới đây là bảng so sánh các tính năng nhắn tin do Firebase Cloud Messaging và trình soạn thư Thông báo cung cấp:
Chức năng | Trình soạn thông báo | Cloud Messaging | |
---|---|---|---|
Mục tiêu | Một thiết bị | ||
Ứng dụng đã đăng ký chủ đề (ví dụ: thời tiết) | |||
Ứng dụng trong phân khúc người dùng được xác định trước (ứng dụng, phiên bản, ngôn ngữ) | |||
Khách hàng trong đối tượng phân tích được chỉ định | |||
Ứng dụng trong nhóm thiết bị | |||
Truyền từ máy khách đến máy chủ | |||
Loại thông báo | Thông báo có kích thước tối đa 2 kb | ||
Tin nhắn dữ liệu có kích thước tối đa 4 kb | |||
Giao hàng | Ngay lập tức | ||
Giờ địa phương của thiết bị ứng dụng trong tương lai | |||
Analytics | Tính năng thu thập số liệu phân tích về Thông báo và số liệu phân tích phễu tích hợp sẵn |
Trình soạn thông báo: Tôi là một nhà phát triển Google Cloud Messaging (GCM) hiện tại và tôi muốn sử dụng trình soạn thông báo. Tôi nên làm gì?
Trình soạn thư thông báo là một giải pháp toàn diện cho phép mọi người gửi thông báo để nhắm đến các đối tượng cụ thể dựa trên thông tin chi tiết từ Google Analytics. Ngoài ra, trình soạn thư Thông báo cung cấp thông tin phân tích phễu cho mọi thông báo, cho phép bạn dễ dàng đánh giá hiệu quả của thông báo.
Nếu là nhà phát triển GCM hiện tại, để sử dụng Trình soạn thông báo, bạn phải nâng cấp từ SDK GCM lên SDK FCM. Xem hướng dẫn di chuyển ứng dụng Android và iOS.
Các tính năng FCM không được dùng nữa từ tháng 6 năm 2023
Những API FCM nào không còn được dùng nữa kể từ ngày 20 tháng 6 năm 2023 và tôi nên làm gì nếu đang sử dụng các API đó?
Các API/SDK sau đây sẽ bị ảnh hưởng khi chúng tôi ngừng sử dụng:
API máy chủ
Tên API | Điểm cuối của API | Tác động đến người dùng | Việc cần làm |
---|---|---|---|
Giao thức HTTP cũ | https://fcm.googleapis.com/fcm/send | Các yêu cầu đến điểm cuối này sẽ bắt đầu không thực hiện được sau ngày 21 tháng 6 năm 2024. | Di chuyển sang API HTTP v1. |
Giao thức XMPP cũ | fcm-xmpp.googleapis.com:5235 | Các yêu cầu đến điểm cuối này sẽ bắt đầu không thực hiện được sau ngày 21 tháng 6 năm 2024. | Di chuyển sang API HTTP v1. |
API máy chủ mã nhận dạng thực thể | https://iid.googleapis.com/v1/web/iid | Các yêu cầu đến điểm cuối này sẽ bắt đầu không thực hiện được sau ngày 21 tháng 6 năm 2024. | Sử dụng SDK JS cho web để tạo lượt đăng ký web FCM. |
https://iid.googleapis.com/iid/* | Các điểm cuối sẽ tiếp tục hoạt động nhưng sẽ không hỗ trợ xác thực bằng khoá máy chủ tĩnh sau ngày 21 tháng 6 năm 2024. | Sử dụng mã truy cập OAuth 2.0 bắt nguồn từ tài khoản dịch vụ. | |
API quản lý nhóm thiết bị | https://fcm.googleapis.com/fcm/notification | Điểm cuối này sẽ tiếp tục hoạt động nhưng sẽ không hỗ trợ xác thực bằng khoá máy chủ tĩnh sau ngày 21 tháng 6 năm 2024. | Sử dụng mã truy cập OAuth 2.0 bắt nguồn từ tài khoản dịch vụ. |
Truyền tin ngược qua XMPP | fcm-xmpp.googleapis.com:5235 | Các lệnh gọi API đến FirebaseMessaging.send trong ứng dụng sẽ không kích hoạt thông báo ngược dòng đến máy chủ ứng dụng sau ngày 21 tháng 6 năm 2024. | Triển khai chức năng này trong logic máy chủ. Ví dụ: một số nhà phát triển triển khai điểm cuối HTTP/gRPC của riêng họ và gọi trực tiếp điểm cuối đó để gửi thông báo từ ứng dụng đến máy chủ ứng dụng. Hãy xem nội dung Bắt đầu nhanh với gRPC này để biết ví dụ về cách triển khai tính năng nhắn tin ngược bằng gRPC. |
API Gửi hàng loạt | https://fcm.googleapis.com/batch | Các yêu cầu đến điểm cuối này sẽ bắt đầu không thực hiện được sau ngày 21 tháng 6 năm 2024. | Di chuyển sang phương thức gửi API HTTP v1 tiêu chuẩn. Phương thức này hỗ trợ HTTP/2 để truyền tải nhiều luồng. |
API SDK dành cho quản trị viên Firebase
Tên API | Ngôn ngữ API | Tác động đến người dùng | Việc cần làm |
---|---|---|---|
sendToDevice()
|
Node.js | API này sẽ ngừng hoạt động sau ngày 21 tháng 6 năm 2024 vì API này gọi API gửi HTTP cũ. | Sử dụng phương thức send() .
|
sendToDeviceGroup()
|
Node.js | API này sẽ ngừng hoạt động sau ngày 21 tháng 6 năm 2024 vì API này gọi API gửi HTTP cũ. | Sử dụng phương thức send() .
|
sendToTopic()
|
Node.js | API này sẽ ngừng hoạt động sau ngày 21 tháng 6 năm 2024 vì API này gọi API gửi HTTP cũ. | Sử dụng phương thức send() .
|
sendToCondition()
|
Node.js | API này sẽ ngừng hoạt động sau ngày 21 tháng 6 năm 2024 vì API này gọi API gửi HTTP cũ. | Sử dụng phương thức send() .
|
sendAll()/sendAllAsync()/send_all()/sendMulticast()/SendMulticastAsync()/send_multicast()
|
Node.js, Java, Python, Go, C# | Các API này sẽ ngừng hoạt động sau ngày 21 tháng 6 năm 2024 vì các API này gọi API gửi hàng loạt . | Nâng cấp lên SDK Quản trị Firebase mới nhất và sử dụng các API mới: sendEach()/
sendEachAsync()/send_each()/sendEachForMulticast()/sendEachForMulticastAsync()/
send_each_for_multicast() .
Xin lưu ý rằng các API mới không còn gọi API gửi hàng loạt không dùng nữa. Vì lý do này, các API mới có thể tạo nhiều kết nối HTTP đồng thời hơn so với các API cũ. |
SDK ứng dụng
Phiên bản SDK | Tác động đến người dùng | Việc cần làm |
---|---|---|
SDK GCM (không dùng nữa từ năm 2018) | Sau ngày 21 tháng 6 năm 2024, các ứng dụng sử dụng SDK GCM sẽ không thể đăng ký mã thông báo cũng như không nhận được thông báo từ FCM. | Nâng cấp SDK Android lên SDK Firebase mới nhất nếu bạn chưa thực hiện. |
SDK JS phiên bản <7.0.0 (thay đổi có thể gây lỗi ở phiên bản 7.0.0 vào năm 2019) | Sau ngày 21 tháng 6 năm 2024, các ứng dụng web sử dụng SDK JS cũ sẽ không thể đăng ký mã thông báo. | Nâng cấp SDK Web Firebase lên phiên bản mới nhất. |
Tôi có bị hạ cấp dịch vụ trước tháng 6 năm 2024 không?
Không. Bạn có 12 tháng (20/6/2023 – 21/6/2024) để di chuyển từ các API cũ sang API mới mà không bị hạ cấp dịch vụ. Bạn nên lên kế hoạch di chuyển càng sớm càng tốt để không bị ảnh hưởng khi các API này ngừng hoạt động vào tháng 6 năm 2024.
Sau tháng 6 năm 2024, bạn có thể thấy số lượng lỗi tăng lên hoặc thiếu chức năng khi sử dụng các API/SDK nêu trên (xem câu hỏi thường gặp tiếp theo để biết thêm thông tin).
Các API không dùng nữa sẽ bị ngừng hoạt động như thế nào và khi nào?
FCM sẽ bắt đầu ngừng dần các API không dùng nữa vào khoảng ngày 22 tháng 7 năm 2024. Sau ngày này, các dịch vụ không dùng nữa sẽ phải trải qua quy trình "nhấp nháy", trong đó số lượng yêu cầu ngày càng tăng sẽ trả về phản hồi lỗi. Trong giai đoạn giảm dần, bạn có thể thấy tần suất của các hành vi và phản hồi lỗi sau đây tăng lên theo thời gian:
Danh mục | Những điều cần biết |
---|---|
Giao thức HTTP cũ | Yêu cầu bị từ chối bằng mã HTTP 301. |
Giao thức XMPP cũ | Yêu cầu bị từ chối với mã lỗi 302. |
FCM ngược dòng | Các thông báo bị phần phụ trợ FCM loại bỏ một cách thầm lặng. |
API Gửi hàng loạt | Yêu cầu bị từ chối với mã lỗi UNIMPLEMENTED và thông báo lỗi "The API is deprecated" (API này không còn được dùng nữa). |
SDK GCM – Đăng ký mã thông báo | Yêu cầu bị từ chối bằng mã HTTP 301. |
SDK GCM – Gửi tin nhắn | Yêu cầu bị từ chối với mã lỗi 400 và thông báo lỗi "V3 token has been deprecated" (Mã thông báo V3 không còn được dùng nữa). |
SDK JS phiên bản < 7.0.0 | Yêu cầu bị từ chối bằng mã HTTP 501. |
Sử dụng khoá máy chủ để truy cập vào API quản lý nhóm thiết bị và Mã phiên bản | Yêu cầu bị từ chối bằng mã HTTP 401. |
Mã thông báo OAuth 2.0 và khoá máy chủ khác nhau như thế nào?
Mã thông báo OAuth 2.0 là một mã thông báo ngắn hạn bắt nguồn từ một tài khoản dịch vụ. Đây là mô hình xác thực tiêu chuẩn của Google và an toàn hơn khoá máy chủ tĩnh.
Hãy xem phần Sử dụng thông tin xác thực để tạo mã thông báo truy cập để biết hướng dẫn về cách sử dụng Thư viện xác thực của Google nhằm lấy mã thông báo.
Xin lưu ý rằng tiêu đề yêu cầu sẽ khác nhau khi bạn sử dụng mã OAuth 2.0 cho các yêu cầu đến các điểm cuối khác nhau.
- API HTTP phiên bản 1:
Authorization: Bearer $oauth_token
- API máy chủ mã nhận dạng thực thể và API quản lý nhóm thiết bị:
Authorization: Bearer $oauth_token
access_token_auth: true
Tôi có thể di chuyển tất cả các yêu cầu của mình sang API mới cùng một lúc không?
Bạn nên tăng dần lưu lượng truy cập đến API mới. Nếu bạn dự kiến gửi hơn 600.000 tin nhắn/phút một cách thường xuyên, hãy liên hệ với nhóm hỗ trợ Firebase để được hướng dẫn cách tăng hạn mức hoặc nhận đề xuất về cách phân bổ lưu lượng truy cập.
Sự khác biệt giữa API HTTP v1 và các API cũ khi tôi gửi thông báo đến chủ đề/nhóm thiết bị là gì?
Chủ đề: bạn không cần thêm tiền tố "/topics/" vào mục tiêu theo chủ đề khi sử dụng API phiên bản 1.
Nhóm thiết bị: Bạn có thể sử dụng mã thông báo nhóm làm mục tiêu mã thông báo trong API HTTP v1. Tuy nhiên, API HTTP phiên bản 1 không trả về số lượng thành công/không thành công trong phản hồi. Bạn nên sử dụng chủ đề FCM hoặc tự quản lý các nhóm thiết bị.
API HTTP v1 có hỗ trợ gửi thông báo đến nhiều mã thông báo trong một yêu cầu không?
Không. Tính năng này (được gọi là "multicast" trong các API HTTP cũ) không được API HTTP v1 hỗ trợ. API HTTP v1 được thiết kế tốt hơn để có khả năng mở rộng.
Đối với các trường hợp sử dụng mà độ trễ toàn bộ là quan trọng hoặc khi tổng kích thước fanout nhỏ (dưới 1 triệu), Google khuyên bạn nên gửi nhiều yêu cầu riêng biệt bằng API HTTP v1. API HTTP phiên bản 1 qua HTTP/2 hoạt động tương tự đối với 99,9% yêu cầu truyền nhiều địa chỉ (gửi < 100 mã thông báo). Đối với các trường hợp sử dụng ngoại lệ (gửi 1.000 mã thông báo), tốc độ này đạt tới một phần ba tốc độ thông lượng, vì vậy, cần có thêm tính năng đồng thời để tối ưu hoá cho trường hợp sử dụng không điển hình này. Người dùng có thể trải nghiệm độ tin cậy và khả năng hoạt động cao hơn với API HTTP phiên bản 1 so với tính năng truyền tin đa điểm cũ.
Đối với các trường hợp sử dụng ưu tiên tốc độ truyền và băng thông đầu ra hoặc tổng kích thước fanout lớn (lớn hơn 1 triệu), Google đề xuất sử dụng tính năng nhắn tin theo chủ đề. Mặc dù tính năng nhắn tin theo chủ đề yêu cầu một hành động một lần để người nhận đăng ký một chủ đề, nhưng tính năng này cung cấp tối đa 10.000 QPS cho mỗi tốc độ phân phối dự án mà không có giới hạn tối đa về kích thước chủ đề.
Những phiên bản SDK Firebase dành cho quản trị viên nào có API mới?
Nền tảng | Phiên bản SDK của Firebase dành cho quản trị viên |
---|---|
Node.js | >=11.7.0 |
Python | >=6.2.0 |
Java | >=9.2.0 |
Tìm | >=4.12.0 |
.NET | >=2.4.0 |
API gửi hàng loạt và API HTTP v1 có gì khác biệt?
API gửi hàng loạt của FCM sử dụng cùng một định dạng thông báo và cơ chế xác thực như API HTTP v1. Tuy nhiên, phương thức này sử dụng một điểm cuối khác. Nếu muốn cải thiện hiệu quả, bạn nên cân nhắc sử dụng HTTP/2 để gửi nhiều yêu cầu qua cùng một kết nối HTTP đến API HTTP v1.
Tôi nên làm gì nếu không thể truy cập vào dự án của mình?
Vui lòng liên hệ với nhóm hỗ trợ Google Cloud để được trợ giúp.
Các dự án mới có thể bật API Gửi thông báo qua đám mây cũ không?
Không. Kể từ ngày 20 tháng 5 năm 2024, các dự án mới sẽ không được phép bật các API cũ của chúng tôi nữa.
Khi nào tôi có thể tắt API Cloud Messaging cũ?
Sau khi chắc chắn rằng bạn đã di chuyển hoàn toàn sang API HTTP v1, bạn có thể tắt Cloud Messaging API cũ (trang có thể không tải được nếu API đã bị tắt).
Hạn mức và hạn mức FCM
Làm cách nào để thông báo cho một lượng lớn khách hàng trong vòng 2 phút?
Rất tiếc, chúng tôi không thể hỗ trợ trường hợp sử dụng này. Bạn phải phân bổ lưu lượng truy cập trong vòng 5 phút.
Ứng dụng của tôi thông báo cho người dùng về các sự kiện và những thông báo này phải được gửi ngay lập tức để hỗ trợ mô hình kinh doanh của tôi. Tôi có thể nhận thêm hạn mức không?
Rất tiếc, chúng tôi không thể tăng hạn mức vì lý do này. Bạn phải phân bổ lưu lượng truy cập trong vòng 5 phút.
Tin nhắn của tôi là về các sự kiện đã lên lịch. Làm cách nào để gửi tất cả lưu lượng truy cập của tôi vào đầu giờ?
Bạn nên bắt đầu gửi thông báo ít nhất 5 phút trước khi sự kiện diễn ra.
Mất bao lâu để yêu cầu về hạn mức của tôi được thực hiện?
Điều này phụ thuộc một chút vào cách bạn sử dụng FCM. Trong mọi trường hợp, bạn có thể nhận được câu trả lời trong vòng vài ngày làm việc. Trong một số trường hợp, có thể có một số trao đổi qua lại về việc sử dụng FCM và nhiều trường hợp khác nhau, điều này có thể kéo dài quá trình. Nếu bạn đáp ứng tất cả các yêu cầu, thì hầu hết các yêu cầu sẽ được xử lý trong vòng 2 tuần.
Làm cách nào để theo dõi mức sử dụng hạn mức của tôi?
Xem hướng dẫn của Google Cloud về cách lập biểu đồ và theo dõi các chỉ số hạn mức.
Tôi / doanh nghiệp của tôi khó xử lý lỗi 429. Tôi có thể được miễn trừ hoặc tăng hạn mức để tránh lỗi 429 không?
Chúng tôi hiểu rằng các hạn mức hạn mức có thể gây khó khăn, nhưng hạn mức là yếu tố quan trọng để duy trì độ tin cậy của dịch vụ và chúng tôi không thể cấp trường hợp miễn trừ.
Tôi có thể nhận thêm hạn mức cho một sự kiện tạm thời không?
Bạn có thể yêu cầu thêm hạn mức để hỗ trợ một sự kiện kéo dài tối đa 1 tháng. Hãy gửi yêu cầu ít nhất 1 tháng trước khi sự kiện diễn ra và cung cấp thông tin chi tiết rõ ràng về thời điểm bắt đầu và kết thúc sự kiện. FCM sẽ nỗ lực hết sức để thực hiện yêu cầu (không thể đảm bảo mức tăng). Các mức tăng hạn mức này sẽ được huỷ bỏ sau ngày kết thúc sự kiện.
Hạn mức hiện tại của tôi có thể thay đổi không?
Mặc dù Google sẽ không làm điều này một cách dễ dàng, nhưng hạn mức có thể thay đổi khi cần thiết để bảo vệ tính toàn vẹn của hệ thống. Khi có thể, Google sẽ thông báo trước cho bạn về những thay đổi như vậy.
Cloud Storage for Firebase
Cloud Storage for Firebase: Tại sao tôi không thể sử dụng Cloud Storage for Firebase?
Cloud Storage for Firebase tạo một bộ chứa mặc định trong cấp miễn phí App Engine. Điều này cho phép bạn nhanh chóng thiết lập và chạy bằng Firebase và Cloud Storage for Firebase mà không cần phải nhập thẻ tín dụng hoặc bật tài khoản Cloud Billing. API này cũng cho phép bạn dễ dàng chia sẻ dữ liệu giữa Firebase và dự án Google Cloud.
Tuy nhiên, có hai trường hợp đã biết mà bạn không thể tạo bộ chứa này và không thể sử dụng Cloud Storage for Firebase:
- Một dự án được nhập từ Google Cloud có ứng dụng App Engine Master/Slave Datastore.
-
Một dự án được nhập từ Google Cloud có các dự án có tiền tố miền. Ví dụ:
domain.com:project-1234
.
Hiện tại, không có giải pháp nào cho các vấn đề này. Bạn nên tạo một dự án mới trong bảng điều khiển Firebase và bật Cloud Storage for Firebase trong dự án đó.
Cloud Storage for Firebase: Tại sao tôi nhận được phản hồi mã lỗi 412 về quyền của tài khoản dịch vụ và các thao tác không thành công của tài khoản dịch vụ khi sử dụng API Cloud Storage for Firebase?
Có thể bạn đang gặp mã lỗi 412 vì API Cloud Storage for Firebase chưa được bật cho dự án của bạn hoặc tài khoản dịch vụ cần thiết bị thiếu các quyền cần thiết.
Xem Câu hỏi thường gặp có liên quan.
Cloud Storage for Firebase: Trên các dự án kế hoạch Spark, tôi có thể lưu trữ các tệp thực thi không?
Đối với các dự án thuộc gói không tính phí (Spark), Firebase sẽ chặn việc tải lên và lưu trữ một số loại tệp thực thi nhất định cho Windows, Android và Apple bằng Cloud Storage for Firebase và Firebase Hosting. Chính sách này được đưa ra để ngăn chặn hành vi sai trái trên nền tảng của chúng tôi.
Việc phân phát, lưu trữ và tải tệp lên của các tệp không được phép sẽ bị chặn đối với tất cả dự án Spark được tạo từ ngày 28 tháng 9 năm 2023. Đối với các dự án Spark hiện có có tệp được tải lên trước ngày đó, bạn vẫn có thể tải các tệp đó lên và lưu trữ.
Quy định hạn chế này áp dụng cho các dự án trong gói Spark. Các dự án sử dụng gói thanh toán theo nhu cầu (Blaze) sẽ không bị ảnh hưởng.
Bạn không thể lưu trữ các loại tệp sau trên Firebase Hosting và Cloud Storage for Firebase:
- Tệp Windows có đuôi
.exe
,.dll
và.bat
- Tệp Android có đuôi
.apk
- Tệp nền tảng Apple có đuôi
.ipa
Tôi cần phải làm gì?
Nếu bạn vẫn muốn lưu trữ các loại tệp này sau ngày 28 tháng 9 năm 2023:
- Đối với dịch vụ lưu trữ: hãy nâng cấp lên gói Blaze trước khi bạn có thể triển khai các loại tệp này đến Firebase Hosting thông qua lệnh
firebase deploy
. - Đối với Bộ nhớ: hãy nâng cấp lên gói Blaze để tải các loại tệp này lên bộ chứa mà bạn chọn bằng cách sử dụng GCS CLI, bảng điều khiển Firebase hoặc bảng điều khiển Google Cloud.
Sử dụng các công cụ Firebase để quản lý tài nguyên Firebase Hosting và Cloud Storage.
- Để quản lý tài nguyên trong Firebase Hosting, hãy sử dụng bảng điều khiển Firebase để xoá bản phát hành theo hướng dẫn này.
- Để quản lý tài nguyên trong Cloud Storage, hãy chuyển đến trang sản phẩm Bộ nhớ trong dự án.
- Trên thẻ Tệp, hãy tìm các tệp không được phép xoá trong hệ thống phân cấp thư mục, sau đó chọn các tệp đó bằng cách sử dụng hộp đánh dấu bên cạnh(các) tên tệp ở bên trái của bảng điều khiển.
- Nhấp vào Xoá rồi xác nhận rằng các tệp đã bị xoá.
Vui lòng tham khảo tài liệu của chúng tôi để biết thêm thông tin về cách quản lý Tài nguyên lưu trữ bằng các công cụ Firebase và Cloud Storage cho các bộ chứa Firebase bằng thư viện ứng dụng.
Cloud Storage for Firebase: Tại sao tôi thấy số lượng thao tác tải lên và tải xuống tăng lên một cách không mong muốn?
Trước đây, các yêu cầu tải xuống và tải lên API Cloud Storage for Firebase không được tính đúng cách. Chúng tôi đã thực hiện các bước để khắc phục vấn đề này, bắt đầu từ ngày 15 tháng 9 năm 2023.
Đối với người dùng Blaze, các thao tác tải lên và tải xuống sẽ bắt đầu được tính vào hoá đơn hằng tháng của bạn. Đối với người dùng Spark, họ sẽ bắt đầu được tính vào giới hạn miễn phí hằng tháng của bạn.
Bạn nên theo dõi Trang sử dụng để biết mọi mức tăng có thể tính vào hạn mức của bạn.
Cloud Storage for Firebase: Tại sao tôi thấy mã tài khoản dịch vụ mới được liên kết với các dự án Firebase sử dụng Cloud Storage for Firebase?
Firebase sử dụng tài khoản dịch vụ để vận hành và quản lý các dịch vụ mà không cần chia sẻ thông tin xác thực của người dùng. Khi tạo dự án Firebase, bạn có thể nhận thấy một số tài khoản dịch vụ đã có sẵn trong dự án.
Tài khoản dịch vụ mà Cloud Storage for Firebase sử dụng nằm trong phạm vi dự án của bạn và có tên là service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com
.
Nếu đã sử dụng Cloud Storage for Firebase trước ngày 19 tháng 9 năm 2022, bạn có thể thấy một tài khoản dịch vụ bổ sung trên các bộ chứa Cloud Storage đã liên kết trước đó có tên là firebase-storage@system.gserviceaccount.com
. Kể từ ngày 19 tháng 9 năm 2022, tài khoản dịch vụ này sẽ không còn được hỗ trợ nữa.
Bạn có thể xem tất cả tài khoản dịch vụ được liên kết với dự án của mình trong bảng điều khiển Firebase, trên thẻ Tài khoản dịch vụ.
Thêm tài khoản dịch vụ mới
Nếu đã xoá tài khoản dịch vụ trước đó hoặc tài khoản dịch vụ không có trong dự án, bạn có thể làm theo một trong những cách sau để thêm tài khoản.
- (Nên dùng) Tự động: Sử dụng điểm cuối REST AddFirebase để nhập lại bộ chứa vào Firebase. Bạn chỉ cần gọi điểm cuối này một lần, chứ không phải một lần cho mỗi bộ chứa được liên kết.
-
Thủ công: Làm theo các bước trong bài viết Tạo và quản lý tài khoản dịch vụ.
Làm theo hướng dẫn đó, hãy thêm một tài khoản dịch vụ có vai trò IAM
Cloud Storage for Firebase Service Agent
và tên tài khoản dịch vụ làservice-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com
.
Xoá tài khoản dịch vụ mới
Bạn không nên xoá tài khoản dịch vụ vì việc này có thể chặn quyền truy cập vào các bộ chứa Cloud Storage của ứng dụng. Để xoá tài khoản dịch vụ khỏi dự án, hãy làm theo hướng dẫn trong phần Tắt tài khoản dịch vụ.
Giá Cloud Storage for Firebase
Làm cách nào để dự đoán số tiền tôi sẽ phải trả cho các thao tác tải lên và tải xuống?
Truy cập vào trang Giá của Firebase và sử dụng công cụ tính gói Blaze. Công cụ tính này liệt kê tất cả các loại hình sử dụng cho Cloud Storage for Firebase.
Sử dụng thanh trượt để nhập mức sử dụng dự kiến của bộ chứa Bộ nhớ. Công cụ tính sẽ ước tính hoá đơn hằng tháng của bạn.
Điều gì sẽ xảy ra nếu tôi vượt quá hạn mức tải lên, tải xuống hoặc bộ nhớ của gói Spark cho Cloud Storage for Firebase?
Khi bạn vượt quá hạn mức cho Cloud Storage trong một dự án trên gói Spark, kết quả sẽ phụ thuộc vào loại hạn mức mà bạn vượt quá:
- Nếu vượt quá hạn mức GB được lưu trữ, bạn sẽ không thể lưu trữ thêm dữ liệu nào trong dự án đó trừ phi xoá một số dữ liệu đã lưu trữ hoặc nâng cấp lên gói có nhiều bộ nhớ hơn hoặc bộ nhớ không giới hạn.
- Nếu bạn vượt quá hạn mức GB đã tải xuống, thì ứng dụng của bạn sẽ không thể tải thêm dữ liệu cho đến ngày hôm sau (bắt đầu từ nửa đêm theo Giờ Thái Bình Dương của Hoa Kỳ), trừ phi bạn nâng cấp lên một gói có hạn mức ít hạn chế hơn hoặc không có hạn mức.
- Nếu bạn vượt quá hạn mức số thao tác tải lên hoặc tải xuống, ứng dụng của bạn sẽ không thể tải lên hoặc tải xuống thêm dữ liệu cho đến ngày hôm sau (bắt đầu từ nửa đêm theo Giờ Thái Bình Dương của Hoa Kỳ), trừ phi bạn nâng cấp lên một gói có hạn mức ít hạn chế hơn hoặc không có hạn mức.
Crashlytics
Truy cập vào trang câu hỏi thường gặp và khắc phục sự cố Crashlytics để xem các mẹo hữu ích và câu trả lời cho các câu hỏi thường gặp khác.
Dynamic Links
Dynamic Links: Firebase có kế hoạch gì trong tương lai đối với Dynamic Links?
Dynamic Links: Tại sao ứng dụng Android của tôi truy cập vào mỗi Đường liên kết động hai lần?
API getInvitation
xoá Đường liên kết linh hoạt đã lưu để tránh việc truy cập vào đường liên kết đó hai lần. Hãy nhớ gọi API này bằng tham số autoLaunchDeepLink
được đặt thành false
trong mỗi hoạt động liên kết sâu để xoá hoạt động đó trong trường hợp hoạt động được kích hoạt bên ngoài hoạt động chính.
Hosting
Hosting: Trên các dự án kế hoạch Spark, tôi có thể lưu trữ các tệp thực thi không?
Đối với các dự án thuộc gói không tính phí (Spark), Firebase sẽ chặn việc tải lên và lưu trữ một số loại tệp thực thi nhất định cho Windows, Android và Apple bằng Cloud Storage for Firebase và Firebase Hosting. Chính sách này được đưa ra để ngăn chặn hành vi sai trái trên nền tảng của chúng tôi.
Việc phân phát, lưu trữ và tải tệp lên của các tệp không được phép sẽ bị chặn đối với tất cả dự án Spark được tạo từ ngày 28 tháng 9 năm 2023. Đối với các dự án Spark hiện có có tệp được tải lên trước ngày đó, bạn vẫn có thể tải các tệp đó lên và lưu trữ.
Quy định hạn chế này áp dụng cho các dự án trong gói Spark. Các dự án sử dụng gói thanh toán theo nhu cầu (Blaze) sẽ không bị ảnh hưởng.
Bạn không thể lưu trữ các loại tệp sau trên Firebase Hosting và Cloud Storage for Firebase:
- Tệp Windows có đuôi
.exe
,.dll
và.bat
- Tệp Android có đuôi
.apk
- Tệp nền tảng Apple có đuôi
.ipa
Tôi cần phải làm gì?
Nếu bạn vẫn muốn lưu trữ các loại tệp này sau ngày 28 tháng 9 năm 2023:
- Đối với dịch vụ lưu trữ: hãy nâng cấp lên gói Blaze trước khi bạn có thể triển khai các loại tệp này đến Firebase Hosting thông qua lệnh
firebase deploy
. - Đối với Bộ nhớ: hãy nâng cấp lên gói Blaze để tải các loại tệp này lên bộ chứa mà bạn chọn bằng cách sử dụng GCS CLI, bảng điều khiển Firebase hoặc bảng điều khiển Google Cloud.
Sử dụng các công cụ Firebase để quản lý tài nguyên Firebase Hosting và Cloud Storage.
- Để quản lý tài nguyên trong Firebase Hosting, hãy sử dụng bảng điều khiển Firebase để xoá bản phát hành theo hướng dẫn này.
- Để quản lý tài nguyên trong Cloud Storage, hãy chuyển đến trang sản phẩm Bộ nhớ trong dự án.
- Trên thẻ Tệp, hãy tìm các tệp không được phép xoá trong hệ thống phân cấp thư mục, sau đó chọn các tệp đó bằng cách sử dụng hộp đánh dấu bên cạnh(các) tên tệp ở bên trái của bảng điều khiển.
- Nhấp vào Xoá rồi xác nhận rằng các tệp đã bị xoá.
Vui lòng tham khảo tài liệu của chúng tôi để biết thêm thông tin về cách quản lý Tài nguyên lưu trữ bằng các công cụ Firebase và Cloud Storage cho các bộ chứa Firebase bằng thư viện ứng dụng.
Hosting: Tại sao bảng nhật ký phát hành Hosting trong bảng điều khiển Firebase cho thấy số lượng tệp nhiều hơn số lượng tệp thực tế trong dự án cục bộ của tôi?
Firebase tự động thêm các tệp bổ sung chứa siêu dữ liệu về trang web Hosting và các tệp này được đưa vào tổng số tệp của bản phát hành.
Hosting: Kích thước tệp lớn nhất mà tôi có thể triển khai cho Firebase Hosting là bao nhiêu?
Hosting có giới hạn kích thước tối đa là 2 GB đối với từng tệp.
Bạn nên lưu trữ các tệp lớn hơn bằng cách sử dụng Cloud Storage. Phương thức này cung cấp giới hạn kích thước tối đa trong phạm vi terabyte cho từng đối tượng.
Hosting: Tôi có thể có bao nhiêu trang web Hosting cho mỗi dự án Firebase?
Tính năng nhiều trang web Firebase Hosting hỗ trợ tối đa 36 trang web cho mỗi dự án.
Performance Monitoring
Truy cập vào trang câu hỏi thường gặp và khắc phục sự cố Performance Monitoring để xem các mẹo hữu ích và câu trả lời cho các câu hỏi thường gặp khác.
Performance Monitoring: Tôi có thể tạo bao nhiêu mẫu URL tuỳ chỉnh?
Bạn có thể tạo tổng cộng tối đa 400 mẫu URL tuỳ chỉnh cho mỗi ứng dụng và tối đa 100 mẫu URL tuỳ chỉnh cho mỗi miền cho ứng dụng đó.
Performance Monitoring: Tại sao tôi không thấy dữ liệu hiệu suất hiển thị theo thời gian thực?
Để xem dữ liệu hiệu suất theo thời gian thực, hãy đảm bảo rằng ứng dụng của bạn sử dụng phiên bản SDK Performance Monitoring tương thích với quá trình xử lý dữ liệu theo thời gian thực.
- iOS – Phiên bản 7.3.0 trở lên
- tvOS – Phiên bản 8.9.0 trở lên
- Android – Phiên bản 19.0.10 trở lên (hoặc Firebase Android BoM phiên bản 26.1.0 trở lên)
- Web – Phiên bản 7.14.0 trở lên
Xin lưu ý rằng bạn luôn nên sử dụng phiên bản SDK mới nhất, nhưng mọi phiên bản nêu trên đều cho phép Performance Monitoring xử lý dữ liệu của bạn gần như theo thời gian thực.
Realtime Database
Realtime Database: "Kết nối cơ sở dữ liệu đồng thời" là gì?
Một kết nối đồng thời tương đương với một thiết bị di động, thẻ trình duyệt hoặc ứng dụng máy chủ được kết nối với cơ sở dữ liệu. Firebase đặt ra các giới hạn cứng về số lượng kết nối đồng thời với cơ sở dữ liệu của ứng dụng. Chúng tôi áp dụng các giới hạn này để bảo vệ cả Firebase và người dùng khỏi hành vi sai trái.
Gói Spark có hạn mức là 100 và không thể tăng hạn mức này. Gói Flame và Blaze có giới hạn là 200.000 kết nối đồng thời trên mỗi cơ sở dữ liệu.
Giới hạn này không giống với tổng số người dùng ứng dụng của bạn, vì không phải tất cả người dùng đều kết nối cùng một lúc. Nếu bạn cần hơn 200.000 kết nối đồng thời, vui lòng đọc bài viết Mở rộng quy mô bằng nhiều cơ sở dữ liệu.
Realtime Database: Realtime Database có những giới hạn về tỷ lệ nào?
Mỗi thực thể Realtime Database có giới hạn về số lượng thao tác ghi mỗi giây. Đối với các hoạt động ghi nhỏ, giới hạn này là khoảng 1.000 thao tác ghi mỗi giây. Nếu bạn sắp đạt đến giới hạn này, các thao tác xử lý hàng loạt bằng cách sử dụng tính năng cập nhật nhiều đường dẫn có thể giúp bạn đạt được thông lượng cao hơn.
Ngoài ra, mỗi thực thể cơ sở dữ liệu có giới hạn về số lượng kết nối cơ sở dữ liệu đồng thời. Giới hạn mặc định của chúng tôi đủ lớn cho hầu hết các ứng dụng. Nếu đang xây dựng một ứng dụng cần mở rộng quy mô, bạn có thể cần phân đoạn ứng dụng trên nhiều phiên bản cơ sở dữ liệu để mở rộng quy mô. Bạn cũng có thể xem xét Cloud Firestore làm cơ sở dữ liệu thay thế.
Realtime Database: Tôi có thể làm gì nếu vượt quá hạn mức sử dụng Realtime Database?
Nếu nhận được cảnh báo hoặc thông báo qua email trong bảng điều khiển Firebase cho biết bạn đã vượt quá hạn mức sử dụng Realtime Database, thì bạn có thể giải quyết vấn đề này dựa trên hạn mức sử dụng mà bạn đã vượt quá. Để xem mức sử dụng Realtime Database, hãy chuyển đến trang tổng quan Realtime Database Mức sử dụng trong bảng điều khiển Firebase.
Nếu đã vượt quá hạn mức tải xuống, bạn có thể nâng cấp gói giá Firebase hoặc đợi cho đến khi hạn mức tải xuống được đặt lại vào đầu chu kỳ thanh toán tiếp theo. Để giảm số lượt tải xuống, hãy thử các bước sau:
- Thêm truy vấn để giới hạn dữ liệu mà các thao tác nghe trả về.
- Kiểm tra các cụm từ tìm kiếm chưa được lập chỉ mục.
- Sử dụng trình nghe chỉ tải các bản cập nhật xuống dữ liệu — ví dụ:
on()
thay vìonce()
. - Sử dụng quy tắc bảo mật để chặn hoạt động tải xuống trái phép.
Nếu bạn đã vượt quá hạn mức bộ nhớ, hãy nâng cấp gói giá để tránh bị gián đoạn dịch vụ. Để giảm lượng dữ liệu trong cơ sở dữ liệu, hãy thử các bước sau:
- Chạy các công việc dọn dẹp định kỳ.
- Giảm mọi dữ liệu trùng lặp trong cơ sở dữ liệu.
Xin lưu ý rằng có thể mất chút thời gian thì việc xoá dữ liệu mới được thể hiện trong mức phân bổ bộ nhớ của bạn.
Nếu bạn đã vượt quá hạn mức kết nối cơ sở dữ liệu đồng thời, hãy nâng cấp gói của bạn để tránh bị gián đoạn dịch vụ. Để quản lý các kết nối đồng thời với cơ sở dữ liệu, hãy thử kết nối thông qua người dùng qua API REST nếu họ không yêu cầu kết nối theo thời gian thực.
Realtime Database: Điều gì sẽ xảy ra nếu tôi vượt quá giới hạn tải xuống hoặc bộ nhớ của gói Spark cho Realtime Database?
Để cung cấp cho bạn một mức giá có thể dự đoán, các tài nguyên bạn có thể sử dụng trong gói Spark sẽ được giới hạn. Điều này có nghĩa là khi bạn vượt quá giới hạn của gói trong bất kỳ tháng nào, ứng dụng của bạn sẽ bị tắt để ngăn việc sử dụng tài nguyên và tính phí thêm.
Realtime Database: Điều gì sẽ xảy ra nếu tôi vượt quá giới hạn kết nối đồng thời của gói Spark cho Realtime Database?
Khi ứng dụng của bạn đạt đến giới hạn đồng thời trên gói Spark, mọi kết nối tiếp theo sẽ bị từ chối cho đến khi một số kết nối hiện có bị đóng. Ứng dụng sẽ tiếp tục hoạt động đối với những người dùng đã kết nối.
Realtime Database: Tính năng sao lưu tự động là gì? Bạn có cung cấp tính năng sao lưu theo giờ cho Realtime Database không?
Sao lưu tự động là một tính năng nâng cao dành cho khách hàng sử dụng gói giá Blaze. Tính năng này sẽ sao lưu dữ liệu Firebase Realtime Database của bạn một lần mỗi ngày và tải dữ liệu đó lên Google Cloud Storage.
Chúng tôi không cung cấp tính năng sao lưu theo giờ.
Realtime Database: Tại sao Realtime Database của tôi được báo cáo có băng thông thấp hơn mức trung bình trong khoảng thời gian từ tháng 9 năm 2016 đến tháng 3 năm 2017?
Đối với các phép tính băng thông, chúng tôi thường tính cả hao tổn do mã hoá SSL (dựa trên lớp 5 của mô hình OSI). Tuy nhiên, vào tháng 9 năm 2016, chúng tôi đã đưa ra một lỗi khiến báo cáo băng thông của chúng tôi bỏ qua hao tổn do mã hoá. Điều này có thể dẫn đến việc báo cáo băng thông và hoá đơn thấp một cách bất thường trong tài khoản của bạn trong vài tháng.
Chúng tôi đã phát hành bản sửa lỗi cho lỗi này vào cuối tháng 3 năm 2017, đưa báo cáo và tính năng thanh toán băng thông trở lại mức bình thường.
Remote Config
Remote Config: Tại sao các giá trị được tìm nạp không thay đổi hành vi và giao diện của ứng dụng?
Trừ phi bạn tìm nạp giá trị bằng fetchAndActivate()
, giá trị sẽ được lưu trữ cục bộ nhưng không được kích hoạt. Để kích hoạt các giá trị đã tìm nạp để có hiệu lực, hãy gọi activate
. Thiết kế này cho phép bạn kiểm soát thời điểm hành vi và giao diện của ứng dụng thay đổi, vì bạn có thể chọn thời điểm gọi activate
. Sau khi bạn gọi activate
, mã nguồn ứng dụng sẽ xác định thời điểm sử dụng các giá trị tham số đã cập nhật.
Ví dụ: bạn có thể tìm nạp các giá trị rồi kích hoạt các giá trị đó vào lần tiếp theo người dùng khởi động ứng dụng. Nhờ đó, bạn không cần phải trì hoãn quá trình khởi động ứng dụng trong khi ứng dụng chờ các giá trị được tìm nạp từ dịch vụ. Sau đó, các thay đổi đối với hành vi và giao diện của ứng dụng sẽ xảy ra khi ứng dụng sử dụng các giá trị tham số đã cập nhật.
Để tìm hiểu thêm về API Cấu hình từ xa và mô hình sử dụng, hãy xem phần Tổng quan về API Cấu hình từ xa.
Remote Config: Tôi đang tạo nhiều yêu cầu tìm nạp trong khi phát triển ứng dụng. Tại sao ứng dụng của tôi không phải lúc nào cũng nhận được các giá trị mới nhất từ dịch vụ khi gửi yêu cầu tìm nạp?
Trong quá trình phát triển ứng dụng, bạn có thể muốn tìm nạp và kích hoạt các cấu hình rất thường xuyên (nhiều lần mỗi giờ) để có thể lặp lại nhanh chóng khi phát triển và kiểm thử ứng dụng. Để thích ứng với việc lặp lại nhanh chóng trên một dự án có tối đa 10 nhà phát triển, bạn có thể tạm thời đặt đối tượng FirebaseRemoteConfigSettings
có khoảng thời gian tìm nạp tối thiểu thấp (setMinimumFetchIntervalInSeconds
) trong ứng dụng.
Remote Config: Dịch vụ Remote Config trả về các giá trị đã tìm nạp nhanh như thế nào sau khi ứng dụng của tôi gửi yêu cầu tìm nạp?
Các thiết bị thường nhận được các giá trị được tìm nạp trong vòng chưa đến một giây và thường nhận được các giá trị được tìm nạp trong mili giây. Dịch vụ Remote Config xử lý các yêu cầu tìm nạp trong vòng vài mili giây, nhưng thời gian cần thiết để hoàn tất một yêu cầu tìm nạp sẽ phụ thuộc vào tốc độ mạng của thiết bị và độ trễ của kết nối mạng mà thiết bị sử dụng.
Nếu mục tiêu của bạn là làm cho các giá trị được tìm nạp có hiệu lực trong ứng dụng sớm nhất có thể mà không tạo ra trải nghiệm người dùng khó chịu, hãy cân nhắc thêm các lệnh gọi đến fetchAndActivate
mỗi khi ứng dụng của bạn làm mới toàn màn hình.
Test Lab
Truy cập vào trang khắc phục sự cố về Test Lab để xem các mẹo hữu ích và câu trả lời cho các câu hỏi thường gặp.
Bộ nhớ phân khúc người dùng Firebase
Bộ nhớ phân đoạn người dùng Firebase là gì?
Bộ nhớ phân đoạn người dùng Firebase lưu trữ mã cài đặt Firebase và các thuộc tính, phân khúc liên quan cũng như danh sách đối tượng mà bạn đã tạo để cung cấp thông tin nhắm mục tiêu cho các dịch vụ Firebase khác sử dụng các mã này, chẳng hạn như tính năng cá nhân hoá Crashlytics, FCM, Remote Config, v.v.