Tìm hiểu và quản lý khoá API cho Firebase
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Khoá API là một chuỗi duy nhất dùng để định tuyến các yêu cầu đến dự án Firebase của bạn khi tương tác với các dịch vụ của Firebase và Google. Trang này mô tả
thông tin cơ bản về khoá API cũng như các phương pháp hay nhất để sử dụng và
quản lý khoá API bằng ứng dụng Firebase.
Nếu bạn nhận được email từ Google Cloud về "khoá API Google có thể truy cập công khai cho dự án Google Cloud của bạn" và khoá API được liệt kê trong email là khoá API Firebase của bạn, hãy đảm bảo rằng khoá API đó đáp ứng các yêu cầu sau để có thể đưa vào mã hoặc tệp cấu hình của bạn một cách an toàn. Bạn có thể xác minh những thông tin sau trong trang API và Dịch vụ >
Thông tin xác thực
của bảng điều khiển Google Cloud.
Đây là khoá API mà bạn dùng cho ứng dụng Firebase và chỉ cho các dịch vụ Firebase. Các phím này thường được gọi là Browser key (auto created by Firebase) hoặc Android key (auto created by Firebase) hoặc iOS key (auto created by Firebase).
Phần còn lại của trang này cung cấp thông tin chi tiết về khoá API cho Firebase, cũng như danh sách các câu hỏi thường gặp về những khoá này.
Thông tin chung về khoá API và Firebase
Khoá API cho Firebase khác với khoá API thông thường
Không giống như cách sử dụng khoá API thông thường, khoá API cho các dịch vụ của Firebase
không được dùng để kiểm soát quyền truy cập vào tài nguyên phụ trợ; việc này chỉ có thể thực hiện
bằng Firebase Security Rules (để kiểm soát người dùng cuối nào có thể truy cập vào tài nguyên) và
Firebase App Check (để kiểm soát ứng dụng nào có thể truy cập vào tài nguyên).
Thông thường, bạn cần phải bảo vệ khoá API một cách nghiêm ngặt (ví dụ: bằng cách sử dụng dịch vụ khoá bảo mật hoặc đặt khoá làm biến môi trường); tuy nhiên, bạn có thể đưa khoá API cho các dịch vụ Firebase vào mã hoặc tệp cấu hình đã đăng ký.
Bạn có thể xem và quản lý tất cả khoá API của dự án trong trang APIs & Services > Credentials (API và dịch vụ > Thông tin xác thực) của bảng điều khiển Google Cloud.
Bạn cũng có thể tìm thấy khoá API được so khớp tự động với một Ứng dụng Firebase ở những nơi sau đây. Theo mặc định, tất cả Ứng dụng Firebase trong dự án của bạn cho cùng một nền tảng (Apple so với Android so với Web) sẽ sử dụng cùng một khoá API.
Ứng dụng Firebase Apple – Tìm khoá API được so khớp tự động trong tệp cấu hình Firebase, GoogleService-Info.plist, trong trường API_KEY.
Ứng dụng Android Firebase — Tìm khoá API được so khớp tự động trong tệp cấu hình Firebase, google-services.json, trong trường current_key.
Ứng dụng web Firebase – Tìm khoá API được so khớp tự động trong đối tượng cấu hình Firebase, trong trường apiKey.
Sử dụng khoá API
Khoá API cho Firebase được dùng để xác định dự án Firebase của bạn khi
tương tác với các dịch vụ của Firebase hoặc Google. Cụ thể, các khoá này được dùng để liên kết các yêu cầu API với dự án của bạn nhằm tính hạn mức và lập hoá đơn. Các lớp này cũng hữu ích
cho việc truy cập vào dữ liệu công khai.
Đối với phần lớn nhà phát triển và trường hợp sử dụng, bạn không tương tác trực tiếp với các khoá API này. Thay vào đó, khi ứng dụng của bạn thực hiện lệnh gọi đến một API Firebase yêu cầu khoá API do ứng dụng di động hoặc ứng dụng web cung cấp, ứng dụng của bạn sẽ tự động tìm khoá API trong cấu hình Firebase của ứng dụng. Cấu hình này đã được thêm vào toàn bộ mã nguồn của ứng dụng khi bạn kết nối ứng dụng với Firebase.
Xin lưu ý rằng bạn có thể cung cấp khoá API của ứng dụng trong ứng dụng bằng một cơ chế khác, chẳng hạn như các tuỳ chọn Firebase hoặc sử dụng biến môi trường.
Ngoài ra, đối với một số API REST cho các dịch vụ của Firebase, bạn có thể cần phải
truyền rõ ràng giá trị của khoá API vào lệnh gọi dưới dạng tham số truy vấn.
Ví dụ này cho thấy cách bạn có thể đưa ra yêu cầu bằng API Firebase Authentication:
Xem xét và áp dụng các quy tắc hạn chế phù hợp cho khoá API
Đối với tất cả khoá API trong dự án, bạn cần đảm bảo rằng các khoá đó có các quy tắc hạn chế và giới hạn API phù hợp, như mô tả trong phần này.
Xem xét các API được tự động thêm vào danh sách cho phép đối với khoá API Firebase của bạn
Khi Firebase tạo khoá API trong dự án của bạn, chúng tôi sẽ tự động thêm "Các quy định hạn chế về API" vào khoá đó. Các API được thêm vào danh sách cho phép này là các API liên quan đến Firebase, yêu cầu ứng dụng cung cấp khoá API cùng với lệnh gọi. Xin lưu ý rằng hầu hết các API cần thiết để sử dụng dịch vụ Firebase thực sự không cần phải có trong danh sách cho phép đối với khoá API của bạn.
Vì Firebase thêm các API cần thiết cho tất cả dịch vụ Firebase, nên danh sách cho phép của khoá API có thể bao gồm API cho các sản phẩm mà bạn không sử dụng.
Bạn có thể xoá các API khỏi danh sách cho phép, nhưng phải hết sức cẩn thận để không xoá các API cần thiết cho Firebase và các dịch vụ Firebase mà bạn sử dụng (xem danh sách các API liên quan đến Firebase cần có trong danh sách cho phép của từng dịch vụ/sản phẩm). Nếu không, bạn sẽ gặp lỗi khi thực hiện lệnh gọi đến các dịch vụ của Firebase.
Thắt chặt hạn mức nếu bạn sử dụng Authentication dựa trên mật khẩu
Nếu bạn sử dụng Firebase Authentication dựa trên mật khẩu và có người lấy được khoá API của bạn, thì họ sẽ không thể truy cập vào bất kỳ cơ sở dữ liệu nào trong dự án Firebase của bạn hoặc dữ liệu Cloud Storagemiễn là dữ liệu này được bảo vệ bằng Firebase Security Rules. Tuy nhiên, họ có thể sử dụng khoá API của bạn để truy cập vào
các điểm cuối xác thực của Firebase và gửi yêu cầu xác thực đến
dự án của bạn.
Để giảm thiểu khả năng ai đó có thể sử dụng sai mục đích khoá API nhằm thực hiện một cuộc tấn công brute force, bạn có thể thắt chặt hạn mức mặc định của các điểm cuối identitytoolkit.googleapis.com để phản ánh lưu lượng truy cập thông thường mà bạn dự kiến cho ứng dụng của mình. Xin lưu ý rằng nếu bạn thắt chặt hạn mức này và ứng dụng của bạn đột nhiên có thêm người dùng, thì bạn có thể gặp lỗi đăng nhập cho đến khi tăng hạn mức.
Bạn có thể thay đổi hạn mức API của dự án trong bảng điều khiển Google Cloud.
Sử dụng các khoá API riêng biệt, bị hạn chế cho mọi dịch vụ không phải của Firebase
Mặc dù các khoá API dùng cho dịch vụ Firebase thường không cần được coi là bí mật, nhưng bạn nên thực hiện một số biện pháp phòng ngừa bổ sung đối với các khoá API mà bạn dùng với các API Google Cloud khác.
Nếu bạn sử dụng một API Google Cloud (trên bất kỳ nền tảng nào) không dành cho một dịch vụ/sản phẩm của Firebase, bạn nên tạo các khoá API riêng biệt, bị hạn chế để sử dụng với các API đó. Điều này cực kỳ quan trọng nếu API dành cho một dịch vụ Google Cloud có tính phí. Cụ thể, tuyệt đối không đưa
Gemini Developer API vào danh sách cho phép đối với khoá API có thể truy cập công khai
hoặc khoá dùng cho các dịch vụ khác.
Bằng cách sử dụng các khoá API riêng biệt, bị hạn chế cho các API không phải của Firebase, bạn có thể xoay vòng hoặc thay thế các khoá khi cần thiết và thêm các quy tắc hạn chế bổ sung cho khoá API mà không làm gián đoạn việc sử dụng các dịch vụ của Firebase.
Xem hướng dẫn tạo khoá dành riêng cho API
Hướng dẫn này mô tả cách tạo một khoá API riêng biệt, bị hạn chế cho một API giả có tên là Super Service API.
Bước 1: Định cấu hình các khoá API hiện có để không cho phép truy cập vào Super Service API
Trong bảng điều khiển Google Cloud, hãy chuyển đến trang API và dịch vụ > Thông tin xác thực.
Nếu thấy lời nhắc, hãy chọn dự án của bạn.
Đối với mỗi khoá API hiện có trong danh sách, hãy mở chế độ sửa.
Trong mục API restrictions (Hạn chế cho API), hãy chọn Restrict key (Hạn chế cho khoá), sau đó thêm vào danh sách tất cả các API mà bạn muốn khoá API có quyền truy cập. Hãy nhớ không thêm API mà bạn đang tạo khoá API riêng biệt (trong ví dụ này là Super Service API).
Khi định cấu hình các quy tắc hạn chế về API cho một khoá API, bạn đang khai báo rõ ràng các API mà khoá đó có quyền truy cập. **Theo mặc định, khi bạn chọn Không hạn chế khoá trong mục Quy tắc hạn chế đối với API, thì khoá API có thể được dùng để truy cập vào bất kỳ API nào được bật cho dự án.**
Giờ đây, các khoá API hiện có của bạn sẽ không cho phép truy cập vào Super Service API, nhưng mỗi khoá sẽ tiếp tục hoạt động cho mọi API mà bạn đã thêm vào danh sách quy tắc hạn chế đối với API của khoá đó.
Bước 2: Tạo và sử dụng khoá API mới để truy cập vào Super Service API
Quay lại trang API và Dịch vụ >
Thông tin xác thực.
Đảm bảo rằng bạn vẫn chọn dự án Firebase.
Nhấp vào Tạo thông tin xác thực > Khoá API. Ghi lại khoá API mới, sau đó nhấp vào Restrict key (Hạn chế khoá).
Trong mục API restrictions (Hạn chế cho API), hãy chọn Restrict key (Hạn chế cho khoá), sau đó thêm Super Service API vào danh sách only (chỉ).
Khoá API mới này chỉ cấp quyền truy cập vào Super Service API.
Định cấu hình ứng dụng và dịch vụ để sử dụng khoá API mới.
Sử dụng khoá API dành riêng cho môi trường
Nếu bạn thiết lập các dự án Firebase khác nhau cho các môi trường khác nhau, chẳng hạn như thử nghiệm và phát hành chính thức, thì điều quan trọng là mỗi phiên bản ứng dụng phải tương tác với dự án Firebase tương ứng. Ví dụ: phiên bản ứng dụng thử nghiệm không bao giờ được giao tiếp với dự án Firebase chính thức. Điều này cũng có nghĩa là ứng dụng thử nghiệm cần sử dụng các khoá API liên kết với dự án Firebase thử nghiệm.
Để giảm thiểu các vấn đề khi đưa các thay đổi về mã từ giai đoạn phát triển sang giai đoạn thử nghiệm rồi đến giai đoạn phát hành chính thức, thay vì đưa khoá API vào chính mã, hãy đặt khoá API làm biến môi trường hoặc đưa khoá API vào tệp cấu hình.
Câu hỏi thường gặp và cách khắc phục sự cố
Câu hỏi thường gặp
Theo mặc định, các khoá API cho dịch vụ Firebase có bị hạn chế không?
Các API được thêm vào danh sách cho phép này là những API được các dịch vụ của Firebase gọi từ mã ứng dụng và yêu cầu khoá API để xác định dự án hoặc ứng dụng Firebase của bạn. Xin lưu ý rằng hầu hết API cần thiết để sử dụng các dịch vụ của Firebase thực sự không cần phải có trong danh sách cho phép đối với khoá API của bạn.
Vì Firebase thêm các API cần thiết cho tất cả dịch vụ Firebase, nên danh sách cho phép của khoá API có thể bao gồm API cho các sản phẩm mà bạn không sử dụng. Bạn có thể xoá các API khỏi danh sách cho phép, nhưng bạn phải hết sức cẩn thận để không xoá các API cần thiết cho Firebase và các dịch vụ Firebase mà bạn sử dụng (xem danh sách các API liên quan đến Firebase cần có trong danh sách cho phép đối với từng dịch vụ/sản phẩm). Nếu không, bạn sẽ gặp lỗi khi thực hiện lệnh gọi đến các dịch vụ của Firebase.
Bạn có thể xem tất cả khoá API và "các quy định hạn chế về API" trong trang API và Dịch vụ > Thông tin xác thực của bảng điều khiển Google Cloud.
Hãy lưu ý những điều sau về cách Firebase áp dụng các "quy định hạn chế về API" này:
Trong tháng 5 năm 2024, tất cả khoá API hiện có và không bị hạn chế mà Firebase đã tự động cấp phép trước đó sẽ bị hạn chế theo danh sách các API liên quan đến Firebasecộng với mọi API hiện đang được bật của dự án.
Mọi khoá API hiện có và đã bị hạn chế mà Firebase đã tự động cấp phép trước đó đều không thay đổi.
Mọi khoá API hiện có không được Firebase tự động cấp phép đều không thay đổi.
Làm cách nào để xác định khoá API nào được liên kết với Ứng dụng Firebase của tôi?
Bạn có thể sử dụng bất kỳ cách nào sau đây để xác định khoá API được liên kết với Ứng dụng Firebase của bạn:
Tôi có thể
liệt kê hai khoá API cho cùng một Ứng dụng Firebase trong tệp/đối tượng
cấu hình Firebase không?
Ứng dụng Firebase Apple – Mỗi ứng dụng có tệp cấu hình riêng và chỉ có thể có một khoá API được liệt kê.
Ứng dụng Android trên Firebase — Tất cả ứng dụng Android trong dự án Firebase đều được liệt kê trong cùng một tệp cấu hình và mỗi ứng dụng chỉ có thể có một khoá API được liệt kê. Tuy nhiên, mỗi ứng dụng trong tệp cấu hình này có thể có một khoá khác nhau.
Ứng dụng web Firebase – Mỗi ứng dụng có đối tượng cấu hình riêng và chỉ có thể có một khoá API được liệt kê.
Tuy nhiên, bạn có thể sử dụng nhiều khoá API với một ứng dụng. Bạn phải cung cấp một cơ chế để ứng dụng của bạn truy cập vào các khoá API khác này, chẳng hạn như thông qua một biến môi trường. Cơ chế truy cập vào các khoá API khác không thể phụ thuộc vào việc các khoá API đó được liệt kê trong tệp/đối tượng cấu hình Firebase của bạn.
Làm cách nào để Firebase biết khoá API nào khớp với một ứng dụng (chẳng hạn như trong tệp/đối tượng cấu hình Firebase)?
Nếu Firebase không tìm thấy khoá bị hạn chế nào phù hợp, thì Firebase sẽ liệt kê iOS key cho ứng dụng Apple, Android key cho ứng dụng Android và Browser key cho ứng dụng web trong tệp cấu hình/đối tượng (giả sử rằng các khoá này tồn tại và không có "Hạn chế về ứng dụng" nào ngăn các khoá này khớp với ứng dụng đó).
Tôi có thể xoá khoá API và trường theo cách thủ công khỏi tệp/đối tượng cấu hình Firebase không?
Có, bạn có thể xoá khoá API khỏi tệp/đối tượng cấu hình theo cách thủ công. Tuy nhiên, bạn phải cung cấp một số cơ chế khác để ứng dụng của bạn truy cập vào khoá API (chẳng hạn như thông qua biến môi trường). Nếu không, mọi lệnh gọi đến dịch vụ Firebase sẽ không thành công.
Tôi có thể chỉnh sửa tệp/đối tượng cấu hình Firebase theo cách thủ công bằng các khoá API khác không?
Có, bạn có thể chỉnh sửa tệp/đối tượng cấu hình theo cách thủ công để liên kết một khoá API khác với một ứng dụng.
Tôi có thể di chuyển khoá API từ dự án Firebase này sang dự án Firebase khác không?
Không, khoá API chỉ xác định một dự án cụ thể và không thể di chuyển sang một dự án khác.
Điều gì sẽ xảy ra nếu tôi xoá một khoá API có trong bảng điều khiển Google Cloud?
Nếu bạn xoá một khoá API đang được một ứng dụng sử dụng, thì các lệnh gọi API từ ứng dụng đó sẽ không thành công. Bạn có thể nhận được báo cáo, email hoặc thông báo lỗi cho biết bạn đang cố gắng sử dụng
một khoá API không hợp lệ.
Thao tác xoá khoá API có hiệu lực vĩnh viễn và không thể huỷ.
Những API nào là bắt buộc trong danh sách cho phép "Hạn chế API" đối với khoá API Firebase?
Đối với khoá API Firebase, các API duy nhất cần có trong danh sách cho phép "Quy tắc hạn chế đối với API" của khoá là những API yêu cầu ứng dụng cung cấp khoá API cùng với lệnh gọi. Xin lưu ý rằng rất ít API liên quan đến Firebase có yêu cầu này. Hầu hết các API liên quan đến Firebase được bật trong dự án của bạn không cần phải nằm trong danh sách cho phép "Hạn chế API" của khoá.
Sử dụng bảng sau để xác định những API liên quan đến Firebase cần được đưa vào danh sách cho phép "Hạn chế về API" cho khoá API Firebase. Xin lưu ý rằng bạn chỉ nên dùng khoá API Firebase cho các dịch vụ của Firebase. Tìm hiểu thêm về cách tạo khoá API riêng biệt, có giới hạn cho các loại API cụ thể.
Bạn có thể xem và quản lý các khoá API của dự án trong trang APIs & Services (API và dịch vụ) > Credentials (Thông tin xác thực) của bảng điều khiển Google Cloud.
* Chỉ bắt buộc nếu bạn đang sử dụng khoá API Firebase với các công cụ của bên thứ ba hoặc quyền truy cập REST trực tiếp vào dịch vụ/sản phẩm Firebase.
** Bắt buộc đối với các phiên bản SDK cũ của sản phẩm. Nếu bạn đang sử dụng phiên bản SDK mới nhất, thì API không cần phải có trong danh sách cho phép của khoá.
Khắc phục sự cố
Làm cách nào để
khắc phục lỗi API_KEY_SERVICE_BLOCKED hoặc lỗi Forbidden 403 cho biết
các yêu cầu đến API này bị chặn?
Hãy làm theo hướng dẫn trong phần Câu hỏi thường gặp này nếu bạn gặp lỗi API_KEY_SERVICE_BLOCKED hoặc lỗi có dạng như sau:
Forbidden: 403 POST https://example-service.googleapis.com/method: Requests to this API example-service.googleapis.com method google.example-service.rest.method are blocked.
Khoá API mà ứng dụng của bạn dùng để gọi API có thể đã được áp dụng "Quy tắc hạn chế đối với API" và danh sách cho phép của khoá không bao gồm API đó.
Nếu bạn gặp lỗi này khi cố gắng sử dụng một dịch vụ không phải của Firebase, thì bạn nên tạo một khoá API mới dành riêng cho dịch vụ và API đó. Bạn chỉ nên sử dụng khoá API Firebase cho các dịch vụ/sản phẩm của Firebase.
Tìm hiểu thêm về cách tạo
khoá API riêng biệt, bị hạn chế cho các loại API cụ thể.
Làm cách nào để
khắc phục lỗi này? "Không tìm nạp được mã đo lường của ứng dụng Firebase này từ
máy chủ."
Khoá API mà ứng dụng web của bạn sử dụng có thể đã được áp dụng "Các quy định hạn chế về API". Nếu đúng như vậy, hãy đảm bảo rằng API Quản lý Firebase có trong danh sách các API được cho phép.
Tôi nhận được email hoặc thông báo lỗi cho biết
khoá API của tôi không hợp lệ. Điều gì đã xảy ra và làm cách nào để khắc phục?
Dưới đây là một số nguyên nhân phổ biến nhất khiến khoá API không hợp lệ:
Khoá API đã áp dụng "Quy tắc hạn chế đối với khoá API", khiến khoá này không khớp với ứng dụng đang cố gắng sử dụng khoá ("Quy tắc hạn chế đối với ứng dụng") hoặc không sử dụng được cho API đang được gọi ("Quy tắc hạn chế đối với API").
Khoá API đã bị xoá khỏi dự án trong bảng điều khiển Google Cloud.
Khoá API không được tạo cho Mã dự án có trong tệp/đối tượng cấu hình Firebase của ứng dụng.
Một cách để khắc phục vấn đề này là lấy phiên bản mới nhất của tệp cấu hình/đối tượng Firebase của ứng dụng, sau đó thay thế tệp cấu hình/đối tượng cũ bằng tệp cấu hình/đối tượng mới cập nhật.
Trước khi gửi tệp cấu hình để tải xuống hoặc hiển thị đối tượng cấu hình trong bảng điều khiển Firebase, Firebase sẽ kiểm tra để đảm bảo (các) khoá API được liệt kê khớp với (các) ứng dụng.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2026-11-10 UTC."],[],[]]