Firebase Management REST API, projenin Firebase kaynakları ve Firebase uygulamaları da dahil olmak üzere Firebase projelerinin programatik olarak ayarlanmasını ve yönetilmesini sağlar.
Bu genel bakış, henüz Firebase hizmetlerini kullanmayan mevcut bir Google Cloudprojesine Firebase kaynakları ve uygulamaları eklemeyle ilgili genel iş akışını açıklar.
Aşağıdakileri yapmak istiyorsanız bu sayfanın belirli bölümlerine atlayabilirsiniz:
- Projenize Firebase hizmetleri ekleme
- Firebase projenize Firebase uygulamaları ekleme
- Firebase projenizi bir Google Analytics hesabına bağlama
Bu sayfadaki adımları uygulamadan önce API'yi etkinleştirdiğinizden emin olun.
Firebase Management API'nin erişim yönetimi hakkında bilgi edinmek için Cloud Identity Access Management (IAM) API dokümanlarını inceleyin.
Başlamadan önce
Başlamadan önce Google Cloud projeniz için Management API'yi etkinleştirmeniz ve erişim jetonunuzu oluşturmanız gerekir.
Google Cloud projeniz için Management REST API'yi etkinleştirme
Henüz yapmadıysanız Google Cloud projenizle kullanmak için Firebase Management API'yi etkinleştirmeniz gerekir.
- Google API'ler Konsolu'nda Firebase Management API sayfasını açın.
- İstendiğinde Google Cloud projenizi seçin.
- Firebase Management API sayfasında Etkinleştir'i tıklayın.
API erişim jetonunuzu oluşturma
Aşağıda, erişim jetonunuzu alan Node.js örneği verilmiştir.
Öncelikle, Google Cloud ortamında değilseniz GOOGLE_APPLICATION_CREDENTIALS
ortam değişkenini hizmet hesabı anahtarınızın yoluna ayarlayın.
Linux veya macOS
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json"
Windows
PowerShell ile:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\path\to\your\service-account-file.json"
Ardından, hizmet hesabı kimlik bilgilerinizden erişim jetonu almak için Firebase Admin SDK'sını kullanı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);
});
}
Projenizin kaynak adını bulma
Firebase hizmetlerini ekleyebileceğiniz Google Cloud projeleri bulabilirsiniz.
İSTE
availableProjects.list
numaralı telefonu arayın.
Bu çağrının istek metni boş olmalıdır.
Node.js'in mevcut Google Cloudprojelerinin listesini istemek için kullanabileceği örnek bir kod aşağıda verilmiştir:
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
çağrısına verilen yanıt gövdesinde ProjectInfo
nesnelerinin listesi bulunur. Proje listesi çok uzunsa yanıt metninde, proje listesinin bir sonraki sayfasını almak için sorgu parametresi olarak kullanabileceğiniz bir nextPageToken
de bulunur.
Aşağıda, availableProjects.list
çağrısının örnek 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 hizmetlerinin eklenmesi mümkün olan iki Google Cloud projesi vardır. project
alanının, bir projenin dünya genelinde benzersiz kaynak adını sağladığını unutmayın.
Projenize Firebase hizmetleri eklemek veya uygulama eklemek için availableProjects.list
tarafından gönderilen yanıtta listelenen herhangi bir project
değerini kullanabilirsiniz.
Sonraki bölümde, projects/first-gcp-project
kaynak adını kullanarak Firebase hizmetlerini First Cloud Project
'e ekleyeceğiz.
Projenize Firebase hizmetleri ekleme
Google Cloud projeleri, Firebase tarafından sunulan hizmetlerden yararlanabilir. Bu bölümde, Firebase hizmetlerini mevcut Google Cloud projenize programatik olarak nasıl ekleyeceğinizi öğreneceksiniz. Firebase konsolunda mevcut Google Cloud projenize de Firebase hizmetleri ekleyebileceğinizi unutmayın.
İSTE
projects.addFirebase
numaralı telefonu arayın.
Bu çağrının istek metni boş olmalıdır.
Google Cloudprojenize Firebase hizmetlerini eklemek için Node.js'de kullanabileceğiniz örnek:
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
'ye yapılan bir aramanın sonucu bir Operation
olur. Projeniz için Firebase ile ilgili diğer uç noktaları çağırabilmeniz için işlemin başarılı olması gerekir.
İşlemin başarılı olup olmadığını kontrol etmek için done
değeri true
olana ve response
değeri FirebaseProject
türüne sahip olana kadar işlem üzerinde operations.get
işlevini çağırabilirsiniz. İşlem başarısız olursa error
değeri google.rpc.Status
olarak ayarlanır.
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
true
olduğundan ve response
türü FirebaseProject
olduğundan Google Cloud projesinde artık Firebase hizmetleri vardır. Yanıt, yeni oluşturulan FirebaseProject
ile ilgili diğer faydalı bilgileri de içerir (ör. projectNumber
ve varsayılan resources
). Operation
, tamamlandıktan sonra otomatik olarak silinir.
Projenize Firebase uygulamaları ekleme
iOS, Android ve web uygulamaları da dahil olmak üzere birçok farklı uygulama FirebaseProject
kullanabilir. Bu bölümde, Firebase uygulamalarını mevcut uygulamanıza programatik olarak nasıl ekleyeceğinizi öğreneceksiniz.
FirebaseProject
Firebase konsolunda mevcut Firebase projenize Firebase uygulamaları da ekleyebileceğinizi unutmayın.
Firebase projenize eklemek için bir Firebase uygulaması türü seçin.
Mevcut Firebase projenize Firebase Android uygulaması ekleyebilirsiniz.
İSTE
projects.androidApps.create
numaralı telefonu arayın.
İstek gövdenizi nasıl oluşturacağınız aşağıda açıklanmıştır:
Gerekli:
packageName
: Android uygulamasının Google Play Console'da görüneceği şekilde standart paket adı.
İsteğe bağlı olsa da ö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
kullanacağız:
{
"displayName": "My Firebase Android App"
"packageName": "com.firebase.android"
}
Firebase projenize Firebase Android uygulaması eklemek için Node.js'de kullanabileceğiniz bir örnek:
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
numaralı telefona yapılan aramanın sonucu bir Operation
olur. Projeniz için Firebase ile ilgili diğer uç noktaları çağırabilmeniz için işlemin başarılı olması gerekir.
İşlemin başarılı olup olmadığını kontrol etmek için done
değeri true
olana ve response
değeri AndroidApp
türüne sahip olana kadar işlem üzerinde operations.get
işlevini çağırabilirsiniz. İşlem başarısız olursa error
değeri google.rpc.Status
olarak ayarlanır.
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
true
olduğundan ve response
türü AndroidApp
olduğundan FirebaseProject
'te artık bir AndroidApp
var. Yanıtta, benzersiz Firebase appId
gibi yeni oluşturulan Firebase Android uygulamanızla ilgili diğer faydalı bilgiler de yer alır. Operation
, tamamlandıktan sonra otomatik olarak silinir.
SHA sertifikaları ekleme
projects.androidApps.sha.create
çağrısını yaparak mevcut herhangi bir Firebase Android uygulamasına SHA sertifikaları ekleyebilirsiniz.
Bu yöntem çağrısının istek metninde boş bir name
alanı olmalıdır.
Bu çağrının sonucu, yeni oluşturulmuş bir ShaCertificate
örneğidir.
projects.androidApps.sha.create
numarasını aradığınızda geçerli bir SHA-1 veya SHA-256 sertifika karması sağlamanız gerekir. İmzalama sertifikanızın SHA karmasını gradle signingReport
komutuyla alabilirsiniz:
./gradlew signingReport
Daha fazla bilgi için Android için Google API'leri sayfasını ziyaret edin.
Firebase projenizi bir Google Analytics hesabına bağlama (İsteğe bağlı)
Mevcut bir Google Analytics hesabını mevcut FirebaseProject
hesabınıza programatik olarak bağlayabilirsiniz. Mevcut Firebase projenizi Proje Ayarları'nın Entegrasyonlar sekmesinden de Google Analytics'e bağlayabileceğinizi unutmayın.
projects.addGoogleAnalytics
çağrısı için analytics_resource
gerekir. analytics_resource
, analyticsAccountId
veya analyticsPropertyId
olabilir:
Belirtilen hesapta yeni bir Google Analytics mülkü sağlamak ve yeni mülkü Firebase projenizle ilişkilendirmek için mevcut bir
analyticsAccountId
belirtin.Google Analytics mülkünü Firebase projenizle ilişkilendirmek için mevcut bir
analyticsPropertyId
belirtin.
Hem analyticsAccountId
'nizi hem de mevcut analyticsPropertyId
'lerinizi Google Analytics web sitesinde bulabilirsiniz.
projects.addGoogleAnalytics
numaralı telefonu aradığınızda:
İlk kontrol, Google Analytics mülkünde mevcut veri akışlarının
FirebaseProject
'ünüzdeki mevcut Firebase uygulamalarına (veri akışıyla ilişkilipackageName
veyabundleId
'ye göre) karşılık gelip gelmediğini belirler. Ardından, geçerli olduğu durumlarda veri akışları ve uygulamalar bağlanır. Bu otomatik bağlantı özelliğinin yalnızca Android uygulamaları ve iOS uygulamaları için geçerli olduğunu unutmayın.Firebase uygulamalarınız için ilgili veri akışı bulunamazsa Google Analytics mülkünde Firebase uygulamalarınızın her biri için yeni veri akışları sağlanır. Daha önce Analytics mülkünüzde bir veri akışıyla ilişkilendirilmiş olsa bile bir web uygulaması için her zaman yeni bir veri akışının ayrıldığını unutmayın.
Google Analytics hesaplarının hiyerarşisi ve yapısı hakkında daha fazla bilgiyi Analytics dokümanlarından edinebilirsiniz.
İSTE
projects.addGoogleAnalytics
numaralı telefonu arayın.
project.addGoogleAnalytics
adresine yaptığımız örnek çağrının istek gövdesinde analyticsAccountId
Google Analytics hesabımızı belirtiriz. Bu çağrı, yeni bir Google Analytics mülkü oluşturur ve yeni mülkü FirebaseProject
ile ilişkilendirir.
{
"analyticsAccountId": "<your-google-analytics-account-id>"
}
Node.js ile bir Firebase projesini Google Analytics hesabına bağlamaya yönelik bir örnek aşağıda verilmiştir:
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
'e yapılan bir aramanın sonucu bir Operation
olur. Projeniz için Firebase ile ilgili diğer uç noktaları çağırabilmeniz için işlemin başarılı olması gerekir.
İşlemin başarılı olup olmadığını kontrol etmek için done
değeri true
olana ve response
analyticsDetails
türüne sahip olana kadar işlemde operations.get
işlevini çağırabilirsiniz. İşlem başarısız olursa error
değeri google.rpc.Status
olarak ayarlanır.
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 olduğundan ve response
türü analyticsDetails
olduğundan FirebaseProject
artık belirtilen Google Analytics hesabına bağlıdır. Operation
, tamamlandıktan sonra otomatik olarak silinir.