Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Thiết lập và quản lý dự án Firebase bằng API Management REST

API REST quản lý Firebase cho phép thiết lập và quản lý có lập trình các dự án Firebase, bao gồm tài nguyên Firebase của dự án và Ứng dụng Firebase.

Tổng quan này mô tả quy trình làm việc chung để thêm tài nguyên và ứng dụng Firebase vào một dự án Google Cloud hiện có hiện không sử dụng dịch vụ Firebase.

Bạn có thể chuyển đến các phần cụ thể của trang này nếu bạn chỉ muốn:

Trước khi làm theo bất kỳ bước nào trên trang này, hãy đảm bảo rằng bạn bật API .

Để biết thông tin về quản lý quyền truy cập cho API quản lý Firebase, hãy truy cập tài liệu API quản lý quyền truy cập nhận dạng đám mây (IAM) .

Trước khi bắt đầu

Trước khi bắt đầu, bạn cần bật API quản lý cho dự án Google Cloud của mìnhtạo mã thông báo truy cập của bạn .

Bật API REST quản lý cho dự án Google Cloud của bạn

Nếu chưa có, bạn sẽ cần bật API quản lý Firebase để sử dụng với dự án Google Cloud của mình.

  1. Mở trang API quản lý Firebase trong bảng điều khiển API của Google.
  2. Khi được nhắc, hãy chọn dự án Google Cloud của bạn.
  3. Nhấp vào Bật trên trang API quản lý Firebase.

Tạo mã thông báo truy cập API của bạn

Đây là một ví dụ cho Node.js lấy mã thông báo truy cập của bạn.

Trước tiên, nếu bạn không ở trong môi trường Google Cloud, hãy đặt biến môi trường GOOGLE_APPLICATION_CREDENTIALS thành đường dẫn đến khóa tài khoản dịch vụ của bạn.

Linux hoặc macOS

export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"

các cửa sổ

Với PowerShell:

$env:GOOGLE_APPLICATION_CREDENTIALS="C:\path\to\your\service-account-file.json"

Sau đó, sử dụng SDK quản trị Firebase để nhận mã truy cập từ thông tin đăng nhập tài khoản dịch vụ của bạn:

const admin = require('firebase-admin');

function getAccessToken() {
  return admin.credential.applicationDefault().getAccessToken()
      .then(accessToken => {
        return accessToken.access_token;
      })
      .catch(err => {
        console.error('Unable to get access token');
        console.error(err);
      });
}

Tìm tên tài nguyên của dự án của bạn

Bạn có thể tìm thấy các dự án Google Cloud có sẵn để thêm dịch vụ Firebase.

YÊU CẦU

Gọi availableProjects.list . Nội dung yêu cầu cho cuộc gọi này phải trống.

Dưới đây là một ví dụ để Node.js yêu cầu danh sách các dự án Google Cloud hiện có:

const fetch = require('node-fetch');

async function listProjects() {
  const accessToken = getAccessToken();
  const uri = 'https://firebase.googleapis.com/v1beta1/availableProjects';
  const options = {
    method: 'GET',
    headers: {
      'Authorization': 'Bearer ' + accessToken,
    },
  };

  try {
    const rawResponse = await fetch(uri, options);
    const resp = await rawResponse.json();
    const projects = resp['projectInfo'];
    console.log('Project total: ' + projects.length);
    console.log('');
    for (let i in projects) {
      const project = projects[i];
      console.log('Project ' + i);
      console.log('ID: ' + project['project']);
      console.log('Display Name: ' + project['displayName']);
      console.log('');
    }
  } catch(err) {
    console.error(err);
  }
}

KẾT QUẢ

Cơ thể phản ứng từ một cuộc gọi đến availableProjects.list chứa một danh sách các ProjectInfo đối tượng. Nếu danh sách các dự án quá dài, phần nội dung phản hồi cũng chứa một nextPageToken mà bạn có thể sử dụng làm tham số truy vấn để lấy trang tiếp theo của các dự án.

Đây là một cơ quan phản hồi ví dụ của một cuộc gọi availableProjects.list cóProjects.list:

{
  "projectInfo": [
    {
      "project": "projects/first-cloud-project",
      "displayName": "First Cloud Project"
    },
    {
      "project": "projects/second-cloud-project",
      "displayName": "Second Cloud Project"
    }
  ]
}

Phản hồi ví dụ này có hai dự án Google Cloud có thể được thêm dịch vụ Firebase vào chúng. Lưu ý rằng trường project cung cấp tên tài nguyên duy nhất trên toàn cầu cho một dự án.

Bạn có thể sử dụng bất kỳ project giá trị được liệt kê trong phản hồi từ availableProjects.list để thêm các dịch vụ căn cứ hỏa lực hoặc thêm các ứng dụng để dự án của bạn.

Trong phần tiếp theo, chúng tôi sẽ thêm các dịch vụ Firebase vào First Cloud Project bằng cách sử dụng tên tài nguyên của các projects/first-gcp-project .

Thêm các dịch vụ Firebase vào dự án của bạn

Các dự án Google Cloud có thể tận dụng các dịch vụ do Firebase cung cấp. Trong phần này, bạn sẽ tìm hiểu cách thêm dịch vụ Firebase vào dự án Google Cloud hiện có của mình theo chương trình. Lưu ý rằng bạn cũng có thể thêm các dịch vụ Firebase vào dự án Google Cloud hiện có của mình trong bảng điều khiển Firebase .

YÊU CẦU

Gọi projects.addFirebase . Nội dung yêu cầu cho cuộc gọi này phải trống.

Dưới đây là một ví dụ để Node.js thêm dịch vụ Firebase vào dự án Google Cloud của bạn:

const fetch = require('node-fetch');

async function addFirebase(projectId) {
  const accessToken = getAccessToken();
  const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + ':addFirebase';
  const options = {
    method: 'POST',
    // Use a manual access token here since explicit user access token is required.
    headers: {
      'Authorization': 'Bearer ' + accessToken,
    },
  };

  try {
    const rawResponse = await fetch(uri, options);
    const resp = await rawResponse.json();
    console.log(resp);
  } catch(err) {
    console.error(err['message']);
  }
}

KẾT QUẢ

Kết quả của một lệnh gọi tới projects.addFirebase là một Operation . Trước khi bạn có thể gọi các điểm cuối khác có liên quan đến Firebase cho dự án của mình, hoạt động phải thành công.

Để kiểm tra xem thao tác có thành công hay không, bạn có thể gọi lệnh operations.get vào thao tác cho đến khi giá trị của donetrueresponse của nó thuộc loại FirebaseProject . Nếu hoạt động không thành công, error của nó được đặt thành google.rpc.Status .

Đây là phản ứng cơ thể của một operations.get gọi:

{
  "name": "operations/...",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.firebase.service.v1beta1.FirebaseProject",
    "projectId": "first-cloud-project",
    "projectNumber": "...",
    "displayName": "First Cloud Project",
    "name": "projects/first-cloud-project",
    "resources": {
      "hostingSite": "first-cloud-project",
      "realtimeDatabaseInstance": "first-cloud-project"
    }
  }
}

Vì việc donetrue và loại responseFirebaseProject , dự án Google Cloud hiện có các dịch vụ Firebase. Phản hồi cũng chứa thông tin hữu ích khác về FirebaseProject mới được tạo của bạn, như projectNumber và các resources mặc định của nó. Operation sẽ tự động bị xóa sau khi hoàn thành.

Thêm ứng dụng Firebase vào dự án của bạn

Nhiều ứng dụng khác nhau có thể sử dụng FirebaseProject , bao gồm các ứng dụng iOS, Android và web. Trong phần này, bạn sẽ tìm hiểu cách thêm Ứng dụng Firebase vào FirebaseProject hiện có của mình theo chương trình. Lưu ý rằng bạn cũng có thể thêm Ứng dụng Firebase vào dự án Firebase hiện có của mình trong bảng điều khiển Firebase .

Chọn một loại Ứng dụng Firebase để thêm vào dự án Firebase của bạn.

Bạn có thể thêm Ứng dụng Android Firebase vào dự án Firebase hiện có của mình.

YÊU CẦU

Gọi projects.androidApps.create . Dưới đây là cách tạo phần thân yêu cầu của bạn:

  • Cần thiết:

    • packageName : Tên gói chính tắc của ứng dụng Android khi nó xuất hiện trong Bảng điều khiển dành cho nhà phát triển trên Google Play.
  • Tùy chọn, nhưng được khuyến nghị:

    • displayName : Tên hiển thị do người dùng chỉ định của ứng dụng. Giá trị này hữu ích cho việc tìm kiếm ứng dụng của bạn sau này trong bảng điều khiển Firebase .

Trong phần thân yêu cầu cho ví dụ của chúng tôi, chúng tôi sẽ sử dụng packageNamedisplayName :

{
  "displayName": "My Firebase Android App"
  "packageName": "com.firebase.android"
}

Dưới đây là một ví dụ để Node.js thêm Ứng dụng Android Firebase vào dự án Firebase của bạn:

const fetch = require('node-fetch');

async function addAndroidApp(projectId, displayName, packageName) {
  const accessToken = getAccessToken();
  const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + '/androidApps';
  const options = {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer ' + accessToken,
    },
    body: JSON.stringify({
      'displayName': displayName,
      'packageName': packageName
    }),
  };

  try {
    const rawResponse = await fetch(uri, options);
    const resp = await rawResponse.json();
    console.log(resp);
  } catch(err) {
    console.error(err['message']);
  }
}

KẾT QUẢ

Kết quả của một lệnh gọi tới projects.androidApps.create là một Operation . Trước khi bạn có thể gọi các điểm cuối khác có liên quan đến Firebase cho dự án của mình, hoạt động phải thành công.

Để kiểm tra xem thao tác có thành công hay không, bạn có thể gọi lệnh operations.get vào thao tác cho đến khi giá trị của donetrueresponse của nó thuộc loại AndroidApp . Nếu hoạt động không thành công, error của nó được đặt thành google.rpc.Status .

Đây là phản ứng cơ thể của một operations.get gọi:

{
  "name": "operations/...",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.firebase.service.v1beta1.AndroidApp",
    "name": "projects/first-cloud-project/androidApps/...",
    "appId": "...",
    "displayName": "My Firebase Android App",
    "projectId": "first-cloud-project",
    "packageName": "com.firebase.android"
  }
}

donetrue và loại responseAndroidApp , FirebaseProject hiện có AndroidApp . Câu trả lời cũng chứa thông tin hữu ích khác về mới được tạo ra căn cứ hỏa lực Android App của bạn, giống như độc đáo căn cứ hỏa lực appId . Operation sẽ tự động bị xóa sau khi hoàn thành.

Thêm chứng chỉ SHA

Bạn có thể thêm chứng chỉ SHA vào bất kỳ Ứng dụng Android Firebase hiện có nào bằng cách gọi tới projects.androidApps.sha.create . Nội dung yêu cầu cho cuộc gọi phương thức này phải có trường name trống. Kết quả của cuộc gọi này là một phiên bản mới được tạo của ShaCertificate .

Khi gọi projects.androidApps.sha.create , bạn cần phải cung cấp một SHA-1 hoặc SHA-256 giấy chứng nhận băm hợp lệ. Bạn có thể lấy băm SHA chứng chỉ ký của bạn với gradle signingReport lệnh:

./gradlew signingReport

Để biết thêm thông tin, hãy truy cập API Google dành cho Android .

Bạn có thể liên kết tài khoản Google Analytics hiện tại với FirebaseProject hiện có của mình theo chương trình. Lưu ý rằng bạn cũng có thể liên kết dự án Firebase hiện tại của mình với Google Analytics trong tab Tích hợp của Cài đặt dự án .

Lệnh gọi tới projects.addGoogleAnalytics project.addGoogleAnalytics yêu cầu analytics_resource , có thể là analyticsAccountId hoặc analyticsPropertyId :

  • Chỉ định một analyticsAccountId hiện có để cung cấp một thuộc tính Google Analytics mới trong tài khoản được chỉ định và liên kết thuộc tính mới với dự án Firebase của bạn.

  • Chỉ định một analyticsPropertyId hiện có để liên kết thuộc tính Google Analytics với dự án Firebase của bạn.

Bạn có thể tìm thấy cả analyticsAccountId và bất kỳ analyticsPropertyId nào hiện có trên trang web Google Analytics .

Khi bạn gọi tới projects.addGoogleAnalytics :

  1. Lần kiểm tra đầu tiên sẽ xác định xem có bất kỳ luồng dữ liệu hiện có nào trong thuộc tính Google Analytics tương ứng với bất kỳ Ứng dụng Firebase hiện có nào trong FirebaseProject của bạn hay không (dựa trên tên packageName hoặc bundleId liên kết với luồng dữ liệu). Sau đó, nếu có thể, các luồng dữ liệu và ứng dụng được liên kết với nhau. Lưu ý rằng liên kết tự động này chỉ áp dụng cho Ứng dụng Android và Ứng dụng iOS.

  2. Nếu không tìm thấy luồng dữ liệu tương ứng nào cho Ứng dụng Firebase của bạn, các luồng dữ liệu mới sẽ được cung cấp trong thuộc tính Google Analytics cho từng Ứng dụng Firebase của bạn. Lưu ý rằng luồng dữ liệu mới luôn được cấp phép cho Ứng dụng web ngay cả khi trước đó nó đã được liên kết với luồng dữ liệu trong thuộc tính Analytics của bạn.

Tìm hiểu thêm về phân cấp và cấu trúc của tài khoản Google Analytics trong tài liệu Analytics .

YÊU CẦU

Gọi projects.addGoogleAnalytics .

Trong phần nội dung yêu cầu cho cuộc gọi mẫu của chúng tôi tới project.addGoogleAnalytics , chúng tôi sẽ chỉ định tài khoản Google Analytics analyticsAccountId của chúng tôi. Lệnh gọi này sẽ cung cấp một thuộc tính Google Analytics mới và liên kết thuộc tính mới với FirebaseProject .

{
  "analyticsAccountId": "<your-google-analytics-account-id>"
}

Dưới đây là ví dụ về Node.js để liên kết dự án Firebase với tài khoản Google Analytics:

const fetch = require('node-fetch');

async function addGoogleAnalytics(projectId, analyticsAccountId) {
  const accessToken = getAccessToken();
  const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + ':addGoogleAnalytics';
  const options = {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer ' + accessToken,
    },
    body: JSON.stringify({
      'analyticsAccountId': analyticsAccountId
    }),
  };

  try {
    const rawResponse = await fetch(uri, options);
    const resp = await rawResponse.json();
    console.log(resp);
  } catch(err) {
    console.error(err['message']);
  }
}

KẾT QUẢ

Kết quả của lệnh gọi tới projects.addGoogleAnalytics là một Operation . Trước khi bạn có thể gọi các điểm cuối khác có liên quan đến Firebase cho dự án của mình, hoạt động phải thành công.

Để kiểm tra xem thao tác có thành công hay không, bạn có thể gọi lệnh operations.get vào thao tác cho đến khi giá trị của donetrueresponse thuộc loại analyticsDetails . Nếu hoạt động không thành công, error của nó được đặt thành google.rpc.Status .

Đây là phản ứng cơ thể của một operations.get gọi:

{
  "name": "operations/...",
  "none": true,
  "response": {
    "@type": "type.googleapis.com/google.firebase.service.v1beta1.AnalyticsDetails",
    "analyticsProperty": [
      {
        "id": "...",
        "displayName": "..."
      }
    ],
    "streamMappings": [
      {
        "app": "...",
        "streamId": "...",
        "measurementId": "..."
      }
    ]
  }
}

Vì việc done là đúng và loại responseanalyticsDetails , nên FirebaseProject hiện được liên kết với tài khoản Google Analytics được chỉ định. Operation sẽ tự động bị xóa sau khi hoàn thành.

Hoàn thiện vị trí mặc định của dự án của bạn (Tùy chọn)

Nếu dự án Firebase của bạn sẽ sử dụng Cloud Firestore, Cloud Storage hoặc ứng dụng Google App Engine (GAE), thì bạn có thể hoàn thiện vị trí tài nguyên Google Cloud Platform (GCP) mặc định cho dự án của mình theo chương trình. Lưu ý rằng bạn cũng có thể chọn một vị trí trong bảng điều khiển Firebase .

Trước khi đặt vị trí này, hãy kiểm tra Chọn vị trí cho dự án của bạn để biết thông tin về vị trí nào là tốt nhất cho dự án của bạn. Bạn cũng nên gọi tới projects.availableLocations để trả về danh sách các vị trí hợp lệ cho dự án của mình vì nếu dự án của bạn là một phần của tổ chức Google Cloud, thì các chính sách tổ chức của bạn có thể hạn chế vị trí nào hợp lệ cho dự án của bạn.

Việc gọi phương thức defaultLocation.finalize này sẽ tạo ra một ứng dụng App Engine có bộ chứa Cloud Storage mặc định nằm trong locationId mà bạn cung cấp trong phần thân yêu cầu.

Vị trí tài nguyên GCP mặc định có thể đã được chỉ định nếu Project đã có ứng dụng App Engine hoặc phương thức defaultLocation.finalize này đã được gọi trước đó.

YÊU CẦU

Gọi projects.defaultLocation.finalize . Dưới đây là cách tạo phần thân yêu cầu của bạn:

  • Cần thiết:

    • locationId : Vị trí nơi dữ liệu của bạn được lưu trữ cho các dịch vụ GCP yêu cầu cài đặt vị trí, như Cloud Firestore hoặc Cloud Storage.
{
  "locationId": "us-west2"
}

Đây là một ví dụ cho Node.js để hoàn thiện vị trí mặc định của dự án của bạn:

const fetch = require('node-fetch');

async function finalizeProjectLocation(projectId, locationId) {
  const accessToken = getAccessToken();
  const uri = 'https://firebase.googleapis.com/v1beta1/projects/' + projectId + '/defaultLocation:finalize';
  const options = {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer ' + accessToken,
    },
    body: JSON.stringify({
      'locationId': locationId
    }),
  };

  try {
    const rawResponse = await fetch(uri, options);
    const resp = await rawResponse.json();
    console.log(resp);
  } catch(err) {
    console.error(err['message']);
  }
}

KẾT QUẢ

Kết quả của một lệnh gọi tới projects.defaultLocation.finalize là một Operation . Trước khi bạn có thể gọi các điểm cuối khác có liên quan đến Firebase cho dự án của mình, hoạt động phải thành công.

Để kiểm tra xem thao tác có thành công hay không, bạn có thể gọi lệnh operations.get vào thao tác cho đến khi giá trị của donetrueresponse của nó thuộc loại google.protobuf.Empty . Nếu thao tác không thành công, error nội dung phản hồi sẽ thuộc loại google.rpc.Status . Operation sẽ tự động bị xóa sau khi hoàn thành.