Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

পরিচালনা REST এপিআই ব্যবহার করে একটি ফায়ারবেস প্রকল্প সেট আপ এবং পরিচালনা করুন

Firebase ম্যানেজমেন্ট বিশ্রাম এপিআই কর্মসূচি সেটআপ এবং Firebase প্রকল্পের ব্যবস্থাপনা, একটি প্রকল্পের Firebase সম্পদ ও Firebase অ্যাপস সহ দেয়।

এই ওভারভিউ সাধারণ কর্মপ্রবাহ একটি বিদ্যমান করার Firebase সম্পদ ও অ্যাপ্লিকেশান যোগ করার জন্য বর্ণনা করে Google মেঘ প্রকল্পের যে বর্তমানে Firebase সেবা ব্যবহার করে না।

আপনি চাইলে এই পৃষ্ঠার নির্দিষ্ট বিভাগে যেতে পারেন:

এই পৃষ্ঠায় কোনো পদক্ষেপগুলি অনুসরণ করার আগে, নিশ্চিত করুন যে আপনি করতে API সক্ষম

Firebase পরিচালনা API জন্য অ্যাক্সেসের ব্যবস্থাপনা সম্পর্কে তথ্যের জন্য, ক্লাউড পরিচয় অ্যাক্সেস ম্যানেজমেন্ট (IAM) এপিআই ডকুমেন্টেশন

তুমি শুরু করার আগে

শুরু করার আগে, আপনি করতে হবে পরিচালনা API সক্ষম আপনার Google ক্লাউড প্রকল্পের জন্য এবং টোকেন আপনার অ্যাক্সেস উৎপন্ন

আপনার Google ক্লাউড প্রকল্পের জন্য ম্যানেজমেন্ট REST API সক্ষম করুন

আপনি ইতিমধ্যে থাকে, তাহলে আপনি সক্ষম করতে হবে Firebase পরিচালনা API আপনার Google ক্লাউড প্রকল্পের সঙ্গে ব্যবহারের জন্য।

  1. খুলুন Firebase পরিচালনা API Google APIs কনসোলে পাতা।
  2. অনুরোধ করা হলে, আপনার Google ক্লাউড প্রকল্প নির্বাচন করুন।
  3. Firebase পরিচালনা API পৃষ্ঠাতে সক্ষম করুন ক্লিক করুন।

আপনার API অ্যাক্সেস টোকেন তৈরি করুন

এখানে Node.js এর জন্য একটি উদাহরণ যা আপনার অ্যাক্সেস টোকেন পুনরুদ্ধার করে।

প্রথমত, আপনি একটি Google মেঘ পরিবেশ না থাকা, সেট GOOGLE_APPLICATION_CREDENTIALS আপনার পরিষেবা অ্যাকাউন্ট চাবি পথে এনভায়রনমেন্ট ভেরিয়েবল।

লিনাক্স বা ম্যাকওএস

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

উইন্ডোজ

পাওয়ারশেলের সাথে:

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

তারপরে, আপনার পরিষেবা অ্যাকাউন্ট শংসাপত্রগুলি থেকে অ্যাক্সেস টোকেন পেতে ফায়ারবেস অ্যাডমিন এসডিকে ব্যবহার করুন:

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);
      });
}

আপনার প্রকল্পের সম্পদের নাম খুঁজুন

আপনি Google ক্লাউড প্রকল্পগুলি খুঁজে পেতে পারেন যা Firebase পরিষেবা যোগ করার জন্য উপলব্ধ।

অনুরোধ করুন

কল availableProjects.list । এই কলের জন্য অনুরোধের অংশটি অবশ্যই খালি থাকতে হবে

উপলব্ধ Google ক্লাউড প্রকল্পগুলির একটি তালিকা অনুরোধ করার জন্য Node.js এর জন্য এখানে একটি উদাহরণ দেওয়া হল:

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);
  }
}

ফলাফল

একটি কল প্রতিক্রিয়াতে শরীর availableProjects.list একটি তালিকা রয়েছে ProjectInfo বস্তু। প্রকল্পের তালিকা খুব দীর্ঘ হয়, তাহলে সাড়া শরীর আরো একটি রয়েছে nextPageToken যে আপনি একটি কোয়েরি প্যারামিটার হিসাবে ব্যবহার করতে পারেন প্রকল্পের পরবর্তী পৃষ্ঠায় জন্য।

এখানে একটি একটি উদাহরণ প্রতিক্রিয়া শরীর availableProjects.list কল:

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

এই উদাহরণের প্রতিক্রিয়াটিতে দুটি Google ক্লাউড প্রকল্প রয়েছে যা তাদের সাথে Firebase পরিষেবা যোগ করতে পারে। মনে রাখবেন যে, project ক্ষেত্র একটি প্রকল্পের জন্য সার্বিক অদ্বিতীয় সংস্থানের নামটি প্রদান করে।

আপনি যে কোনো ব্যবহার করতে পারেন project প্রতিক্রিয়াতে তালিকাভুক্ত মান availableProjects.list করার Firebase পরিষেবা যুক্ত বা অ্যাপ্লিকেশান যোগ আপনার প্রকল্পের জন্য।

পরবর্তী বিভাগে, আমরা Firebase সেবা যুক্ত করতে হবে First Cloud Project ব্যবহার projects/first-gcp-project সম্পদ নাম।

আপনার প্রকল্পে Firebase পরিষেবা যোগ করুন

Google ক্লাউড প্রকল্পগুলি Firebase- এর দেওয়া পরিষেবাগুলির সুবিধা নিতে পারে। এই বিভাগে, আপনি শিখবেন কিভাবে আপনার বিদ্যমান গুগল ক্লাউড প্রকল্পে প্রোগ্রাম্যাটিকভাবে ফায়ারবেস পরিষেবা যোগ করতে হয়। মনে রাখবেন আপনি এছাড়াও আপনার বিদ্যমান Google মেঘ প্রকল্পে Firebase সেবা যোগ করতে পারেন Firebase কনসোল

অনুরোধ করুন

কল projects.addFirebase । এই কলের জন্য অনুরোধের অংশটি অবশ্যই খালি থাকতে হবে

আপনার Google ক্লাউড প্রকল্পে ফায়ারবেস পরিষেবা যোগ করার জন্য Node.js এর একটি উদাহরণ এখানে দেওয়া হল:

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']);
  }
}

ফলাফল

একটি কল ফল projects.addFirebase একটি হল Operation । আপনার প্রকল্পের জন্য অন্যান্য ফায়ারবেস-সম্পর্কিত এন্ডপয়েন্টকে কল করার আগে, অপারেশনটি অবশ্যই সফল হতে হবে।

যদি অপারেশন সফল হয় পরীক্ষা করার জন্য, আপনি কল করতে পারেন operations.get পর্যন্ত মান অপারেশন উপর done হয় true এবং তার response ধরনের হয় FirebaseProject । অপারেশন ব্যর্থ হলে, তার error সেট করা হয় google.rpc.Status

এখানে একটি প্রতিক্রিয়া শরীর operations.get কল:

{
  "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"
    }
  }
}

যেহেতু done হয় true এবং response ধরনের একটি হল FirebaseProject , Google মেঘ প্রকল্পের এখন Firebase সেবা রয়েছে। প্রতিক্রিয়া আপনার নতুন তৈরি করা সম্পর্কে অন্যান্য প্রয়োজনীয় তথ্য ধারণ করে FirebaseProject , তার মত projectNumber এবং তার ডিফল্ট resourcesOperation স্বয়ংক্রিয়ভাবে সমাপ্তির পরে মুছে ফেলা হয়।

আপনার প্রকল্পে Firebase অ্যাপস যোগ করুন

বিভিন্ন অ্যাপস একটি ব্যবহার করতে পারেন FirebaseProject আইওএস, অ্যান্ড্রয়েড, এবং ওয়েব অ্যাপ্লিকেশানগুলি সহ। এই বিভাগে, আপনি আপনার বিদ্যমান করার Firebase Apps অ্যাড করার পদ্ধতিটি শিখবেন FirebaseProject প্রোগ্রামেটিক্যালি। মনে রাখবেন আপনি এছাড়াও আপনার বিদ্যমান Firebase প্রকল্পে Firebase Apps অ্যাড করতে পারেন Firebase কনসোল

আপনার ফায়ারবেস প্রকল্পে যোগ করার জন্য এক ধরনের ফায়ারবেস অ্যাপ নির্বাচন করুন।

আপনি আপনার বিদ্যমান Firebase প্রকল্পের জন্য একটি Firebase অ্যান্ড্রয়েড অ্যাপ যোগ করতে পারেন।

অনুরোধ করুন

কল projects.androidApps.create । আপনার রিকোয়েস্ট বডি কীভাবে তৈরি করবেন তা এখানে:

  • প্রয়োজনীয়:

    • packageName : যেমন Google Play বিকাশকারী কনসোলে প্রদর্শিত হবে Android অ্যাপ্লিকেশান প্রামাণ্য প্যাকেজের নাম।
  • Alচ্ছিক, কিন্তু প্রস্তাবিত:

    • displayName : অ্যাপ্লিকেশন ব্যবহারকারী-নির্ধারিত প্রদর্শন নাম। এই মান পরবর্তী আপনার অ্যাপ খোঁজার জন্য দরকারী Firebase কনসোল

আমাদের উদাহরণস্বরূপ অনুরোধের মূল, আমরা ব্যবহার করব packageName এবং displayName :

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

আপনার ফায়ারবেস প্রকল্পে একটি ফায়ারবেস অ্যান্ড্রয়েড অ্যাপ যোগ করার জন্য এখানে Node.js এর একটি উদাহরণ দেওয়া হল:

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']);
  }
}

ফলাফল

একটি কল ফল projects.androidApps.create একটি হল Operation । আপনার প্রকল্পের জন্য অন্যান্য ফায়ারবেস-সম্পর্কিত এন্ডপয়েন্টকে কল করার আগে, অপারেশনটি অবশ্যই সফল হতে হবে।

যদি অপারেশন সফল হয় পরীক্ষা করার জন্য, আপনি কল করতে পারেন operations.get অপারেশন যতক্ষণ মান done হয় true এবং তার response ধরনের হয় AndroidApp । অপারেশন ব্যর্থ হলে, তার error সেট করা হয় google.rpc.Status

এখানে একটি প্রতিক্রিয়া শরীর operations.get কল:

{
  "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"
  }
}

যেহেতু done হয় true এবং response টাইপ একটি হল AndroidApp , FirebaseProject এখন একটি আছে AndroidApp । প্রতিক্রিয়া অনন্য Firebase মত আপনার নতুন তৈরি করা Firebase অ্যান্ড্রয়েড অ্যাপ্লিকেশন সম্পর্কে অন্যান্য প্রয়োজনীয় তথ্য রয়েছে appIdOperation স্বয়ংক্রিয়ভাবে সমাপ্তির পরে মুছে ফেলা হয়।

SHA সার্টিফিকেট যোগ করুন

আপনি কল করে যেকোনো বিদ্যমান Firebase অ্যান্ড্রয়েড অ্যাপ রয়েছে SHA সার্টিফিকেট যোগ করতে পারেন projects.androidApps.sha.create । এই পদ্ধতি কলের জন্য অনুরোধের মূল একটি খালি থাকতে হবে name ক্ষেত্র। এই কলের ফলাফল একদম সদ্য সৃষ্ট নিদর্শন হয় ShaCertificate

যখন কলিং projects.androidApps.sha.create , আপনি একটি বৈধ রয়েছে SHA-1 অথবা SHA-256 সার্টিফিকেট হ্যাশ প্রদান করতে হবে। আপনি gradle সঙ্গে আপনার স্বাক্ষর সার্টিফিকেট রয়েছে SHA হ্যাশ পেতে পারেন signingReport কমান্ড প্রয়োগ করুন:

./gradlew signingReport

আরো তথ্যের জন্য, যান Android এর জন্য Google API গুলি

আপনি একটি বিদ্যমান লিঙ্ক করতে পারেন Google Analytics অ্যাকাউন্ট আপনার বিদ্যমান করার FirebaseProject প্রোগ্রামেটিক্যালি। মনে রাখবেন আপনি বা Google Analytics এ আপনার বিদ্যমান Firebase প্রকল্পের লিঙ্ক করতে পারেন ঐক্যবদ্ধতা আপনার Project সেটিংসের ট্যাব।

থেকে কল projects.addGoogleAnalytics একটি প্রয়োজন analytics_resource , যা হয় একটি হতে পারে analyticsAccountId অথবা একটি analyticsPropertyId :

  • একটি বিদ্যমান উল্লেখ করুন analyticsAccountId বিধান নিদিষ্ট অ্যাকাউন্টের মধ্যে একটি নতুন Google Analytics সম্পত্তি এবং আপনার Firebase প্রকল্পের সঙ্গে নতুন সম্পত্তি শরীক।

  • একটি বিদ্যমান উল্লেখ করুন analyticsPropertyId আপনার Firebase প্রকল্পের সঙ্গে Google Analytics প্রোপার্টি যুক্ত করে।

তুমি তোমার উভয় জানতে পারেন analyticsAccountId এবং বিদ্যমান analyticsPropertyId উপর Google এনালিটিক্স ওয়েবসাইট

আপনি কল যখন projects.addGoogleAnalytics :

  1. প্রথম চেক নির্ধারণ করে কোনো বিদ্যমান ডেটা আপনার কোনো বিদ্যমান Firebase Apps- এ Google Analytics প্রোপার্টি মিলা নানা জায়গায় স্রোত বইবে যদি FirebaseProject (উপর ভিত্তি করে packageName বা bundleId তথ্য প্রবাহ সঙ্গে যুক্ত)। তারপর, প্রযোজ্য হিসাবে, ডেটা স্ট্রিম এবং অ্যাপস লিঙ্ক করা হয়। মনে রাখবেন যে এই স্বয়ংক্রিয় লিঙ্কিং শুধুমাত্র অ্যান্ড্রয়েড অ্যাপস এবং আইওএস অ্যাপের জন্য প্রযোজ্য।

  2. যদি আপনার ফায়ারবেস অ্যাপের জন্য কোন সংশ্লিষ্ট ডেটা স্ট্রিম না পাওয়া যায়, তাহলে আপনার প্রতিটি ফায়ারবেস অ্যাপের জন্য গুগল অ্যানালিটিক্স প্রপার্টিতে নতুন ডেটা স্ট্রিম দেওয়া আছে। মনে রাখবেন যে একটি নতুন ডেটা স্ট্রিম সবসময় একটি ওয়েব অ্যাপের জন্য ব্যবস্থা করা হয়, এমনকি যদি এটি আগে আপনার অ্যানালিটিক্স প্রপার্টিতে একটি ডেটা স্ট্রিমের সাথে যুক্ত থাকে।

অনুক্রমের এবং Google এনালিটিক্স কাঠামো সম্পর্কে আরো জানুন অ্যাকাউন্ট অ্যানালিটিক্স ডকুমেন্টেশন

অনুরোধ করুন

কল projects.addGoogleAnalytics

আমাদের উদাহরণ কলের জন্য অনুরোধের মূল ইন project.addGoogleAnalytics , আমরা আমাদের Google Analytics অ্যাকাউন্ট উল্লেখ করব analyticsAccountId । এই কলটি ইচ্ছা রিযিক একটি নতুন Google Analytics সম্পত্তি এবং সাথে নতুন সম্পত্তি শরীক FirebaseProject

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

এখানে একটি উদাহরণ হল Node.js- এর একটি ফায়ারবেস প্রকল্পকে একটি 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']);
  }
}

ফলাফল

একটি কল ফল projects.addGoogleAnalytics একটি হল Operation । আপনার প্রকল্পের জন্য অন্যান্য ফায়ারবেস-সম্পর্কিত এন্ডপয়েন্টকে কল করার আগে, অপারেশনটি অবশ্যই সফল হতে হবে।

যদি অপারেশন সফল হয় পরীক্ষা করার জন্য, আপনি কল করতে পারেন operations.get অপারেশন যতক্ষণ মান done হয় true এবং response ধরনের হয় analyticsDetails । অপারেশন ব্যর্থ হলে, তার error সেট করা হয় google.rpc.Status

এখানে একটি প্রতিক্রিয়া শরীর operations.get কল:

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

যেহেতু done সত্য এবং response ধরনের analyticsDetails , FirebaseProject এখন নিদিষ্ট Google Analytics অ্যাকাউন্ট লিঙ্ক করা হয়েছে। Operation স্বয়ংক্রিয়ভাবে সমাপ্তির পরে মুছে ফেলা হয়।

আপনার প্রকল্পের ডিফল্ট অবস্থান চূড়ান্ত করুন ()চ্ছিক)

আপনার Firebase প্রকল্পের ক্লাউড Firestore, ক্লাউড সঞ্চয়স্থান, অথবা একটি App ইঞ্জিন অ্যাপ্লিকেশন ব্যবহার করবে, তাহলে আপনি চূড়ান্ত করতে ডিফল্ট Google মেঘ প্ল্যাটফর্ম (GCP) সম্পদ অবস্থান প্রোগ্রামেটিক্যালি আপনার প্রকল্পের জন্য। মনে রাখবেন আপনি এছাড়াও একটি অবস্থান নির্বাচন করতে পারেন Firebase কনসোল

এই অবস্থানটি সংযোজনা করার আগে, খুঁজে বার করো আপনার প্রকল্পের জন্য অবস্থানগুলি নির্বাচন তথ্যের জন্য যার উপর অবস্থান আপনার প্রকল্পের জন্য সবচেয়ে ভাল। এছাড়াও আপনি কল করা উচিত projects.availableLocations আপনার প্রকল্পের জন্য বৈধ অবস্থানের একটি তালিকা ফিরতে কারণ আপনার প্রকল্পের একটি Google মেঘ সংগঠন অংশ হয়, তাহলে, তারপর আপনার প্রতিষ্ঠানের নীতি সীমিত হতে পারে অবস্থানে আপনার প্রকল্পের জন্য বৈধ।

এই কল করা হচ্ছে defaultLocation.finalize পদ্ধতি সৃষ্টি করে একটি সঙ্গে একটি App ইঞ্জিন আবেদন ডিফল্ট ক্লাউড স্টোরেজ বালতি মধ্যে অবস্থিত locationId আপনি অনুরোধ শরীরে প্রদান।

তাহলে ডিফল্ট GCP রিসোর্স অবস্থান ইতিমধ্যে নিদিষ্ট করা হয়ে থাকতে পারে Project ইতিমধ্যে একটি App ইঞ্জিন আবেদন আছে বা এই defaultLocation.finalize পদ্ধতি পূর্বে ডাকা হয়।

অনুরোধ করুন

কল projects.defaultLocation.finalize । আপনার রিকোয়েস্ট বডি কীভাবে তৈরি করবেন তা এখানে:

  • প্রয়োজনীয়:

    • locationId : অবস্থানের যেখানে আপনার ডেটা GCP যে পরিষেবাগুলি ক্লাউড Firestore বা ক্লাউড স্টোরেজ মত একটি অবস্থান সেটিং প্রয়োজন জন্য সংরক্ষণ করা হয়।
{
  "locationId": "us-west2"
}

আপনার প্রকল্পের ডিফল্ট অবস্থান চূড়ান্ত করার জন্য এখানে Node.js এর একটি উদাহরণ রয়েছে:

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']);
  }
}

ফলাফল

একটি কল ফল projects.defaultLocation.finalize একটি হল Operation । আপনার প্রকল্পের জন্য অন্যান্য ফায়ারবেস-সম্পর্কিত এন্ডপয়েন্টকে কল করার আগে, অপারেশনটি অবশ্যই সফল হতে হবে।

যদি অপারেশন সফল হয় পরীক্ষা করার জন্য আপনি কল করতে পারেন operations.get অপারেশন যতক্ষণ মান done হয় true এবং তার response ধরনের হয় google.protobuf.Empty । তাহলে অপারেশন অসফল হয়, প্রতিক্রিয়া শরীর error ধরনের হতে হবে google.rpc.StatusOperation স্বয়ংক্রিয়ভাবে সমাপ্তির পরে মুছে ফেলা হয়।