Firebase Management REST API, dahil olmak üzere Firebase projelerinin programatik kurulumu ve yönetimi. Firebase kaynakları ve Firebase Uygulamaları.
Bu genel bakışta, Firebase kaynaklarını eklemek için genel iş akışı açıklanmaktadır ve uygulamaları mevcut bir Google Cloud proje Firebase hizmetlerini kullanmıyor.
Aşağıdakileri yapmak istiyorsanız bu sayfanın belirli bölümlerine atlayabilirsiniz:
- Projenize Firebase hizmetlerini ekleyin
- Firebase uygulamalarını Firebase projenize ekleme
- Firebase projenizi bir Google Analytics hesabına bağlama
- Projenizin varsayılan konumunu belirleme
Bu sayfadaki herhangi bir adımı uygulamadan önce API'yi etkinleştirin.
Firebase Management API'de erişim yönetimi hakkında bilgi edinmek için Cloud Identity Access Management (IAM) API dokümanlarına göz atın.
Başlamadan önce
Başlamadan önce Yönetim API'sını etkinleştirmeniz ve Google Cloud projeniz ve erişim jetonunuzu oluşturun.
Google Cloud projeniz için Management REST API'yi etkinleştirin
Henüz yapmadıysanız Firebase Management API Google Cloud projenizle kullanın.
- Şunu açın: Firebase Management API sayfasını ziyaret ederek kontrol edebilirsiniz.
- İstendiğinde Google Cloud projenizi seçin.
- Firebase Management API sayfasında Etkinleştir'i tıklayın.
API erişim jetonunuzu oluşturma
Erişim jetonunuzu alan Node.js örneğini aşağıda bulabilirsiniz.
Öncelikle, bir Google Cloud ortamında değilseniz
GOOGLE_APPLICATION_CREDENTIALS
ortam değişkenini
hizmet hesabı anahtarı.
Linux veya macOS
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"
Windows
Powerpoint ile:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\path\to\your\service-account-file.json"
Ardından, hizmetinizden erişim jetonu almak için Firebase Admin SDK'yı kullanın hesap kimlik bilgileri:
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);
});
}
Projenizin kaynak adını bulma
Firebase'i ekleyebileceğiniz Google Cloud proje bulabilirsiniz kullanıma sunuyoruz.
İSTE
Telefonla arama
availableProjects.list
.
Bu çağrının istek gövdesi boş olmalıdır.
Aşağıdaki örnekte, kullanılabilir Google Cloud listesinin listesini istemek üzere Node.js'ye bir örnek verilmiştir projeler:
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);
}
}
SONUÇ
availableProjects.list
öğesine yapılan bir çağrının yanıt gövdesinde şunlar yer alır:
ProjectInfo
nesneler'i tıklayın. Proje listesi çok uzunsa yanıt gövdesinde bir
Sonraki sayfa için sorgu parametresi olarak kullanabileceğiniz nextPageToken
bilgi edinmenizi sağlar.
Aşağıda, bir availableProjects.list
çağrısına ait örnek bir yanıt gövdesi verilmiştir:
{
"projectInfo": [
{
"project": "projects/first-cloud-project",
"displayName": "First Cloud Project"
},
{
"project": "projects/second-cloud-project",
"displayName": "Second Cloud Project"
}
]
}
Bu örnek yanıtta, Firebase'e sahip olabilecek iki Google Cloud projesi var
hizmet eklendi. project
alanının sağladığı global
bir proje için benzersiz bir kaynak adıdır.
Şurada listelenen yanıtta listelenen herhangi bir project
değerini kullanabilirsiniz:
Firebase hizmetlerini eklemek için availableProjects.list
veya
projenize uygulama ekleyebilirsiniz.
Sonraki bölümde, First Cloud Project
API'sini kullanarak Firebase hizmetlerini
projects/first-gcp-project
kaynak adı.
Firebase hizmetlerini projenize ekleyin
Google Cloud proje, Firebase'in sunduğu hizmetlerden yararlanabilir. İçinde Bu bölümde, Firebase hizmetlerini mevcut hesabınıza nasıl ekleyeceğinizi öğreneceksiniz. Google Cloud projesi programatik olarak eklenir. Ayrıca, Firebase'i de ekleyebileceğinizi unutmayın. Firebase konsolunda mevcut Google Cloud projenize ekleyebilirsiniz.
İSTE
Telefonla arama
projects.addFirebase
.
Bu çağrının istek gövdesi boş olmalıdır.
Google Cloud sayfanıza Firebase hizmetleri eklemek için Node.js örneğini aşağıda bulabilirsiniz proje:
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']);
}
}
SONUÇ
projects.addFirebase
çağrısının sonucu:
Operation
Sizden önce
projeniz için Firebase ile ilgili diğer uç noktaları çağırabiliyorsa, işlem
yardımcı olur.
İşlemin başarılı olup olmadığını kontrol etmek için
operations.get
done
değeri true
olana ve response
değeri
FirebaseProject
yazın. İşlem başarısız olursa error
değeri şu şekilde ayarlanır:
google.rpc.Status
.
Bir operations.get
çağrısının yanıt gövdesi aşağıda verilmiştir:
{
"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
türü true
ve response
türü FirebaseProject
olduğundan,
Google Cloud projede artık Firebase hizmetleri var. Yanıtta ayrıca şunlar da var:
yeni oluşturduğunuz FirebaseProject
hakkında başka faydalı bilgiler (örneğin,
projectNumber
ve varsayılan resources
. Operation
, otomatik olarak
tamamlandıktan sonra silinir.
Firebase Apps'i projenize ekleyin
iOS, Android ve web de dahil olmak üzere birçok farklı uygulama FirebaseProject
kullanabilir
Bu bölümde, Firebase uygulamalarını mevcut
programatik olarak FirebaseProject
. Ayrıca, Firebase uygulamalarını
Firebase konsolunda mevcut Firebase projenizi.
Firebase projenize eklenecek Firebase Uygulaması türünü seçin.
Mevcut Firebase projenize bir Firebase Android uygulaması ekleyebilirsiniz.
İSTE
Telefonla arama
projects.androidApps.create
.
İsteğinizin gövdesini şu şekilde oluşturabilirsiniz:
Gerekli:
packageName
: Android uygulamasının standart paket adı (şimdiki haliyle) Google Play Geliştirici Konsolu'nda görünür.
İsteğe bağlıdır, ancak önerilir:
displayName
: Uygulamanın kullanıcı tarafından atanan görünen adı. Bu değer Uygulamanızı daha sonra Firebase konsolunda bulmak için kullanışlıdır.
Örneğimizin istek gövdesinde packageName
ve
displayName
:
{
"displayName": "My Firebase Android App"
"packageName": "com.firebase.android"
}
Firebase'e Firebase Android uygulaması eklemek için kullanabileceğiniz Node.js örneği proje:
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']);
}
}
SONUÇ
projects.androidApps.create
çağrısının sonucu:
Operation
Sizden önce
projeniz için Firebase ile ilgili diğer uç noktaları çağırabiliyorsa, işlem
yardımcı olur.
İşlemin başarılı olup olmadığını kontrol etmek için
operations.get
done
değeri true
olana ve response
değeri
AndroidApp
yazın. İşlem başarısız olursa error
değeri şu şekilde ayarlanır:
google.rpc.Status
.
Bir operations.get
çağrısının yanıt gövdesi aşağıda verilmiştir:
{
"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
türü true
ve response
türü AndroidApp
olduğundan,
FirebaseProject
için artık AndroidApp
var. Yanıtta başka bilgiler de
Firebase Android uygulamanızla ilgili yararlı bilgiler (ör.
benzersiz Firebase appId
sürümü. Operation
şu sürenin sonunda otomatik olarak silinir:
teşekkür etmenin de
önemli bir yoludur.
SHA sertifikaları ekleme
SHA sertifikalarını mevcut herhangi bir Firebase Android uygulamasına
projects.androidApps.sha.create
.
Bu yöntem çağrısının istek gövdesinde boş bir name
alanı olmalıdır.
Bu çağrının sonucu, şunun yeni oluşturulmuş bir örneğidir:
ShaCertificate
.
projects.androidApps.sha.create
çağrılırken geçerli bir
SHA-1 veya SHA-256 sertifika karması. İmzanızın SHA karmasını alabilirsiniz
gradle signingReport
komutuyla sağladığınız sertifika:
./gradlew signingReport
Daha fazla bilgi için Android.
Firebase projenizi bir Google Analytics hesabına bağlama (İsteğe bağlı)
Mevcut bir
Google Analytics hesabınızı mevcut
programatik olarak FirebaseProject
. Mevcut hesabınızı kullanarak
Firebase projesini
Entegrasyonlar
Proje Ayarları sekmesindeki sekmenizi seçin.
projects.addGoogleAnalytics
çağrısı için analytics_resource
gerekir,
Bu, bir analyticsAccountId
veya analyticsPropertyId
olabilir:
Yeni bir Google Analytics temel hazırlığını yapmak için mevcut bir
analyticsAccountId
belirtin ve yeni mülkü Firebase projesi.Google Analytics ile ilişkilendirmek için mevcut bir
analyticsPropertyId
belirtin Firebase projenizle bağdaştırın.
Hem analyticsAccountId
hem de mevcut tüm öğeleri bulabilirsiniz
Google Analytics'te analyticsPropertyId
bakın.
projects.addGoogleAnalytics
numaralı telefonu aradığınızda:
İlk kontrol, Google Cloud Logging'de mevcut veri akışlarının Analytics mülkü,
FirebaseProject
(şununla ilişkilendirilmişpackageName
veyabundleId
öğesine göre: dahil edilir. Ardından, uygun şekilde, veri akışları ve uygulamalar bağlanır. Bu otomatik bağlamanın yalnızca Android ve iOS uygulamaları için geçerli olduğunu unutmayın.Firebase Uygulamalarınız için karşılık gelen veri akışı bulunamazsa yeni veriler Google Analytics mülkünde akışların her biri için Firebase Uygulamaları. Web için her zaman yeni bir veri akışının hazırlandığını unutmayın. veya hesabınızda daha önce bir veri akışıyla ilişkilendirilmiş Analytics mülkü.
Google Analytics hesaplarının hiyerarşisi ve yapısı hakkında daha fazla bilgi edinmek için Analytics belgelerini.
İSTE
Telefonla arama
projects.addGoogleAnalytics
.
project.addGoogleAnalytics
çağrısına verdiğimiz örnek çağrının istek gövdesinde,
Google Analytics hesabımızı analyticsAccountId
belirtmek isteriz. Bu görüşmede
yeni bir Google Analytics mülkü sağlar ve yeni mülkü
FirebaseProject
.
{
"analyticsAccountId": "<your-google-analytics-account-id>"
}
Bir Firebase projesini Google Analytics'e bağlamak için kullanılan Node.js örneğini aşağıda bulabilirsiniz hesap:
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']);
}
}
SONUÇ
projects.addGoogleAnalytics
çağrısının sonucu:
Operation
Sizden önce
projeniz için Firebase ile ilgili diğer uç noktaları çağırabiliyorsa, işlem
yardımcı olur.
İşlemin başarılı olup olmadığını kontrol etmek için operations.get
done
değeri true
olana ve response
türünde olana kadar işlem
analyticsDetails
. İşlem başarısız olursa error
değeri şu şekilde ayarlanır:
google.rpc.Status
.
Bir operations.get
çağrısının yanıt gövdesi aşağıda verilmiştir:
{
"name": "operations/...",
"none": true,
"response": {
"@type": "type.googleapis.com/google.firebase.service.v1beta1.AnalyticsDetails",
"analyticsProperty": [
{
"id": "...",
"displayName": "..."
}
],
"streamMappings": [
{
"app": "...",
"streamId": "...",
"measurementId": "..."
}
]
}
}
done
doğru, response
türü analyticsDetails
olduğundan
FirebaseProject
, belirtilen Google Analytics hesabına bağlandı. İlgili içeriği oluşturmak için kullanılan
Operation
, işlem tamamlandıktan sonra otomatik olarak silinir.
Projenizin varsayılan konumunu tamamlama (İsteğe bağlı)
Firebase projenizde Cloud Firestore, Cloud Storage veya bir App Engine uygulaması kullanıyorsanız varsayılan Google Cloud Platform (GCP) kaynak konumu belirlemenize yardımcı olabilir. Bir konumu şuradan da seçebileceğinizi unutmayın: "the" Firebase konsolu.
'nı inceleyin.Bu konumu ayarlamadan önce İşletmeniz için konumları seçin
proje başlatma belgesini kullanacaksınız
akılda kalıcı bir yolunu sunar. Ayrıca
projects.availableLocations
ve projeniz için geçerli konumların bir listesini döndürür.
Google Cloud kuruluşunun parçasıysa kuruluş politikalarınız
kullanıcıların ziyaret edebileceği
tüm değerleri ifade eder.
Bu defaultLocation.finalize
yöntemi çağrıldığında App Engine oluşturulur
varsayılan Cloud Storage olan uygulama
paket
şurada bulunan:
locationId
belirttiğiniz URL'dir.
Varsayılan GCP kaynak konumu,
Project
için zaten App Engine uygulaması var veya bu uygulama
defaultLocation.finalize
yöntemi daha önce çağrıldı.
İSTE
Telefonla arama
projects.defaultLocation.finalize
.
İsteğinizin gövdesini şu şekilde oluşturabilirsiniz:
Gerekli:
locationId
: GCP hizmetleri için verilerinizin depolandığı konum Cloud Firestore veya Cloud Storage.
{
"locationId": "us-west2"
}
Projenizin varsayılan konumunu sonlandırmak için Node.js örneğini aşağıda bulabilirsiniz:
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']);
}
}
SONUÇ
projects.defaultLocation.finalize
çağrısının sonucu:
Operation
Sizden önce
projeniz için Firebase ile ilgili diğer uç noktaları çağırabiliyorsa, işlem
yardımcı olur.
İşlemin başarılı olup olmadığını kontrol etmek için operations.get
done
değeri true
olana ve response
türüne gelene kadar işlem
google.protobuf.Empty
. İşlem başarısız olursa yanıt gövdesi,
error
, google.rpc.Status
türünde olacak. Operation
, otomatik olarak
tamamlandıktan sonra silinir.