Google, Siyah topluluklar için ırksal eşitliği ilerletmeye kararlıdır. Nasıl olduğunu gör.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Firebase Yönetici SDK'sını sunucunuza ekleyin

Yönetici SDK'sı, aşağıdaki gibi işlemler gerçekleştirmek için ayrıcalıklı ortamlardan Firebase ile etkileşime girmenizi sağlar:

  • Tam yönetici ayrıcalıklarına sahip Gerçek Zamanlı Veritabanı verilerini okuyun ve yazın.
  • Firebase Cloud Messaging sunucu protokollerine basit ve alternatif bir yaklaşım kullanarak programlı olarak Firebase Cloud Messaging mesajları gönderin.
  • Firebase kimlik doğrulama jetonları oluşturun ve doğrulayın.
  • Firebase projelerinizle ilişkili Cloud Storage kovaları ve Cloud Firestore veritabanları gibi Google Cloud Platform kaynaklarına erişin.
  • Kimlik doğrulama için kullanıcı verilerini arama veya kullanıcının e-posta adresini değiştirme gibi işlemleri yapmak için kendi basitleştirilmiş yönetici konsolunuzu oluşturun.

Ayrıcalıklı bir ortamdan (sunucu gibi) yönetici erişiminin aksine, Node.js SDK'yı son kullanıcı erişimi için bir istemci olarak kullanmak istiyorsanız (örneğin, bir Node.js masaüstünde veya IoT uygulamasında), bunun yerine , istemci JavaScript SDK'sını ayarlamak için talimatları izleyin.

Her dilde hangi Firebase özelliklerinin desteklendiğini gösteren bir özellik matrisi:

özellik node.js Java piton Git C #
Özel Jeton Darbesi
Kimlik Jetonu Doğrulaması
Kullanıcı yönetimi
Özel Taleplerle Erişimi Kontrol Edin
Jeton İptalini Yenile
Kullanıcıları İçe Aktar
Oturum Çerezi Yönetimi
E-posta İşlem Bağlantıları Oluşturma
SAML / OIDC sağlayıcı yapılandırmalarını yönetme
Çoklu kiracılık desteği
Gerçek Zamanlı Veritabanı *
Firebase Bulut Mesajlaşma
FCM Çok Noktaya Yayın
FCM Konu Aboneliklerini Yönetme
Bulut depolama
Cloud Firestore
Proje Yönetimi
Güvenlik Kuralları
ML Model Yönetimi
Firebase Uzaktan Yapılandırma

Bu kullanımlar için Yönetici SDK entegrasyonu hakkında daha fazla bilgi edinmek için ilgili Gerçek Zamanlı Veritabanı , FCM , Kimlik Doğrulama ve Bulut Depolama belgelerine bakın. Bu sayfanın geri kalanı Yönetici SDK'sının temel kurulumuna odaklanmaktadır.

Ön şartlar

  • Bir sunucu uygulamanız olduğundan emin olun.

  • Kullandığınız Yönetici SDK'sına bağlı olarak sunucunuzun aşağıdakileri çalıştırdığından emin olun:

    • Yönetici Node.js SDK - Node.js 10.10.0+
    • Yönetici Java SDK - Java 7+ (Java 8+ önerilir)
      Java 7 desteği kullanımdan kaldırıldı.
    • Yönetici Python SDK - Python 3.5+
    • Yönetici Go SDK - Go 1.11+
    • Yönetici .NET SDK - .NET Framework 4.5+ veya .Net Core 1.5+

Bir Firebase projesi ve hizmet hesabı oluşturun

Firebase Yönetici SDK'sını kullanmak için aşağıdakilere ihtiyacınız vardır:

  • Bir Firebase projesi
  • Firebase ile iletişim kurmak için bir hizmet hesabı
  • Hizmet hesabınızın kimlik bilgilerini içeren bir yapılandırma dosyası

Henüz bir Firebase projeniz yoksa, Firebase konsolunda bir tane oluşturmanız gerekir. Firebase projeleri hakkında daha fazla bilgi edinmek için Firebase Projelerini Anlama sayfasını ziyaret edin.

SDK'yı ekleyin

Yeni bir proje kuruyorsanız, seçtiğiniz dil için SDK'yı yüklemeniz gerekir.

node.js

Firebase Admin Node.js SDK npm'de kullanılabilir. Zaten bir package.json dosyanız yoksa, npm init bir tane oluşturun. Daha sonra, yüklemek firebase-admin npm paketi ve kaydetmek package.json :

 $ npm install firebase-admin --save
 

, Uygulamanızda modülünü kullanmak için require herhangi bir JavaScript dosyası it:

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

ES2015 kullanıyorsanız, bunun yerine modülü import :

 import * as admin from 'firebase-admin';
 

Java

Firebase Yöneticisi Java SDK'sı Maven merkez deposunda yayınlanır. Kitaplığı yüklemek için build.gradle dosyanızda bağımlılık olarak build.gradle :

 dependencies {
  implementation 'com.google.firebase:firebase-admin:6.15.0'
}
 

Uygulamanızı oluşturmak için Maven kullanıyorsanız, pom.xml aşağıdaki bağımlılığı ekleyebilirsiniz:

 <dependency>
  <groupId>com.google.firebase</groupId>
  <artifactId>firebase-admin</artifactId>
  <version>6.15.0</version>
</dependency>
 

piton

Firebase Admin Python SDK'sına pip yoluyla erişilebilir. Kütüphaneyi sudo üzerinden tüm kullanıcılar için kurabilirsiniz:

 $ sudo pip install firebase-admin
 

Veya, --user bayrağını ileterek yalnızca geçerli kullanıcı için kitaplığı yükleyebilirsiniz:

 $ pip install --user firebase-admin
 

Git

Go Admin SDK, go get yardımcı programı kullanılarak yüklenebilir:

 # Install as a module dependency
$ go get firebase.google.com/go/v4

# Install to $GOPATH
$ go get firebase.google.com/go
 

C #

.NET Yönetici SDK'sı, .NET paket yöneticisi kullanılarak yüklenebilir:

 $ Install-Package FirebaseAdmin -Version 1.15.0
 

Alternatif olarak, dotnet komut satırı yardımcı programını kullanarak yükleyin:

 $ dotnet add package FirebaseAdmin --version 1.15.0
 

Veya, .csproj dosyanıza aşağıdaki paket başvuru girişini ekleyerek yükleyebilirsiniz:

 <ItemGroup>
  <PackageReference Include="FirebaseAdmin" Version="1.15.0" />
</ItemGroup>
 

SDK'yı başlat

Bir Firebase projesi oluşturduktan sonra, SDK'yı hizmet hesabı dosyanızı Google Uygulaması Varsayılan Kimlik Bilgileri ile birleştiren bir yetkilendirme stratejisiyle başlatabilirsiniz.

Firebase projeleri, uygulama sunucunuzdan veya güvenilir ortamınızdan Firebase sunucusu API'lerini çağırmak için kullanabileceğiniz Google hizmet hesaplarını destekler. Yerel olarak kod geliştiriyorsanız veya uygulamanızı şirket içinde dağıtıyorsanız, sunucu isteklerini yetkilendirmek için bu hizmet hesabı üzerinden alınan kimlik bilgilerini kullanabilirsiniz.

Bir hizmet hesabının kimliğini doğrulamak ve hesabın Firebase hizmetlerine erişmesine izin vermek için JSON biçiminde özel bir anahtar dosyası oluşturmanız gerekir.

Hizmet hesabınız için özel bir anahtar dosyası oluşturmak için:

  1. Firebase konsolunda Ayarlar> Hizmet Hesapları'nı açın .

  2. Yeni Özel Anahtar Oluştur'u tıklayın, ardından Anahtar Oluştur'u tıklayarak onaylayın.

  3. Anahtarı içeren JSON dosyasını güvenli bir şekilde saklayın.

Bir servis hesabı aracılığıyla yetkilendirme yaparken, uygulamanıza kimlik bilgilerini sağlamak için iki seçeneğiniz vardır. GOOGLE_APPLICATION_CREDENTIALS ortam değişkenini ayarlayabilir veya kodu açıkça hizmet hesabı anahtarının yolunu açık bir şekilde iletebilirsiniz. İlk seçenek daha güvenlidir ve şiddetle tavsiye edilir.

Ortam değişkenini ayarlamak için:

GOOGLE_APPLICATION_CREDENTIALS ortam değişkenini, hizmet hesabı anahtarınızı içeren JSON dosyasının dosya yoluna ayarlayın. Bu değişken yalnızca geçerli kabuk oturumunuz için geçerlidir, bu nedenle yeni bir oturum açarsanız değişkeni yeniden ayarlayın.

Linux veya macOS

 export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"
 

pencereler

PowerShell ile:

 $env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"
 

Yukarıdaki adımları tamamladıktan sonra, Uygulama Varsayılan Kimlik Bilgileri (ADC) kimlik bilgilerinizi dolaylı olarak belirleyebilir ve Google dışı ortamlarda test ederken veya çalıştırırken hizmet hesabı kimlik bilgilerini kullanmanıza olanak tanır.

SDK'yı gösterildiği gibi başlatın:

node.js

 admin.initializeApp({
  credential: admin.credential.applicationDefault(),
  databaseURL: 'https://<DATABASE_NAME>.firebaseio.com'
});
 

Java

 FirebaseOptions options = new FirebaseOptions.Builder()
    .setCredentials(GoogleCredentials.getApplicationDefault())
    .setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/")
    .build();

FirebaseApp.initializeApp(options);
 

piton

 default_app = firebase_admin.initialize_app()
 

Git

 app, err := firebase.NewApp(context.Background(), nil)
if err != nil {
	log.Fatalf("error initializing app: %v\n", err)
} 

C #

 FirebaseApp.Create(new AppOptions()
{
    Credential = GoogleCredential.GetApplicationDefault(),
});
 

OAuth 2.0 yenileme belirteci kullanma

Yönetici SDK'sı ayrıca bir Google OAuth2 yenileme jetonu ile kimlik doğrulaması yapmanıza olanak tanıyan bir kimlik bilgisi sağlar:

node.js

 var refreshToken; // Get refresh token from OAuth2 flow

admin.initializeApp({
  credential: admin.credential.refreshToken(refreshToken),
  databaseURL: 'https://<DATABASE_NAME>.firebaseio.com'
});
 

Java

 FileInputStream refreshToken = new FileInputStream("path/to/refreshToken.json");

FirebaseOptions options = new FirebaseOptions.Builder()
    .setCredentials(GoogleCredentials.fromStream(refreshToken))
    .setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/")
    .build();

FirebaseApp.initializeApp(options);
 

piton

 cred = credentials.RefreshToken('path/to/refreshToken.json')
default_app = firebase_admin.initialize_app(cred)
 

Git

 opt := option.WithCredentialsFile("path/to/refreshToken.json")
config := &firebase.Config{ProjectID: "my-project-id"}
app, err := firebase.NewApp(context.Background(), config, opt)
if err != nil {
	log.Fatalf("error initializing app: %v\n", err)
} 

C #

 FirebaseApp.Create(new AppOptions()
{
    Credential = GoogleCredential.FromFile("path/to/refreshToken.json"),
});
 

Parametresiz başlat

SDK parametresiz olarak da başlatılabilir. Bu durumda SDK, Google Uygulama Varsayılan Kimlik Bilgilerini kullanır ve FIREBASE_CONFIG ortam değişkenindeki seçenekleri okur. FIREBASE_CONFIG değişkeninin içeriği { ile başlıyorsa, bu bir JSON nesnesi olarak ayrıştırılacaktır. Aksi takdirde SDK, dizenin seçenekleri içeren bir JSON dosyasının adı olduğunu varsayar.

node.js

 // Initialize the default app
var admin = require('firebase-admin');
var app = admin.initializeApp();
 

Java

 FirebaseApp.initializeApp();
 

piton

 default_app = firebase_admin.initialize_app()
 

Git

 app, err := firebase.NewApp(context.Background(), nil)
if err != nil {
	log.Fatalf("error initializing app: %v\n", err)
} 

C #

 FirebaseApp.Create();
 

Başlatıldıktan sonra, aşağıdaki görev türlerini gerçekleştirmek için Yönetici SDK'sını kullanabilirsiniz:

Birden çok uygulamayı başlat

Çoğu durumda, yalnızca tek bir varsayılan uygulamayı başlatmanız gerekir. Bu uygulamadaki hizmetlere iki eşdeğer şekilde erişebilirsiniz:

node.js

 // Initialize the default app
var defaultApp = admin.initializeApp(defaultAppConfig);

console.log(defaultApp.name);  // '[DEFAULT]'

// Retrieve services via the defaultApp variable...
var defaultAuth = defaultApp.auth();
var defaultDatabase = defaultApp.database();

// ... or use the equivalent shorthand notation
defaultAuth = admin.auth();
defaultDatabase = admin.database();
 

Java

 // Initialize the default app
FirebaseApp defaultApp = FirebaseApp.initializeApp(defaultOptions);

System.out.println(defaultApp.getName());  // "[DEFAULT]"

// Retrieve services by passing the defaultApp variable...
FirebaseAuth defaultAuth = FirebaseAuth.getInstance(defaultApp);
FirebaseDatabase defaultDatabase = FirebaseDatabase.getInstance(defaultApp);

// ... or use the equivalent shorthand notation
defaultAuth = FirebaseAuth.getInstance();
defaultDatabase = FirebaseDatabase.getInstance();
 

piton

 # Import the Firebase service
from firebase_admin import auth

# Initialize the default app
default_app = firebase_admin.initialize_app(cred)
print(default_app.name)  # "[DEFAULT]"

# Retrieve services via the auth package...
# auth.create_custom_token(...)
 

Git

 // Initialize default app
app, err := firebase.NewApp(context.Background(), nil)
if err != nil {
	log.Fatalf("error initializing app: %v\n", err)
}

// Access auth service from the default app
client, err := app.Auth(context.Background())
if err != nil {
	log.Fatalf("error getting Auth client: %v\n", err)
} 

C #

 // Initialize the default app
var defaultApp = FirebaseApp.Create(new AppOptions()
{
    Credential = GoogleCredential.GetApplicationDefault(),
});
Console.WriteLine(defaultApp.Name); // "[DEFAULT]"

// Retrieve services by passing the defaultApp variable...
var defaultAuth = FirebaseAuth.GetAuth(defaultApp);

// ... or use the equivalent shorthand notation
defaultAuth = FirebaseAuth.DefaultInstance;
 

Bazı kullanım örnekleri, aynı anda birden fazla uygulama oluşturmanızı gerektirir. Örneğin, bir Firebase projesinin Gerçek Zamanlı Veritabanından veri okumak ve başka bir proje için özel jetonları nane etmek isteyebilirsiniz. Veya iki uygulamanın kimlik bilgilerini ayrı kimlik bilgileriyle doğrulamak isteyebilirsiniz. Firebase SDK, her biri kendi yapılandırma bilgilerine sahip aynı anda birden fazla uygulama oluşturmanıza olanak tanır.

node.js

 // Initialize the default app
admin.initializeApp(defaultAppConfig);

// Initialize another app with a different config
var otherApp = admin.initializeApp(otherAppConfig, 'other');

console.log(admin.app().name);  // '[DEFAULT]'
console.log(otherApp.name);     // 'other'

// Use the shorthand notation to retrieve the default app's services
var defaultAuth = admin.auth();
var defaultDatabase = admin.database();

// Use the otherApp variable to retrieve the other app's services
var otherAuth = otherApp.auth();
var otherDatabase = otherApp.database();
 

Java

 // Initialize the default app
FirebaseApp defaultApp = FirebaseApp.initializeApp(defaultOptions);

// Initialize another app with a different config
FirebaseApp otherApp = FirebaseApp.initializeApp(otherAppConfig, "other");

System.out.println(defaultApp.getName());  // "[DEFAULT]"
System.out.println(otherApp.getName());    // "other"

// Use the shorthand notation to retrieve the default app's services
FirebaseAuth defaultAuth = FirebaseAuth.getInstance();
FirebaseDatabase defaultDatabase = FirebaseDatabase.getInstance();

// Use the otherApp variable to retrieve the other app's services
FirebaseAuth otherAuth = FirebaseAuth.getInstance(otherApp);
FirebaseDatabase otherDatabase = FirebaseDatabase.getInstance(otherApp);
 

piton

 # Initialize the default app
default_app = firebase_admin.initialize_app(cred)

#  Initialize another app with a different config
other_app = firebase_admin.initialize_app(cred, name='other')

print(default_app.name)    # "[DEFAULT]"
print(other_app.name)      # "other"

# Retrieve default services via the auth package...
# auth.create_custom_token(...)

# Use the `app` argument to retrieve the other app's services
# auth.create_custom_token(..., app=other_app)
 

Git

 // Initialize the default app
defaultApp, err := firebase.NewApp(context.Background(), nil)
if err != nil {
	log.Fatalf("error initializing app: %v\n", err)
}

// Initialize another app with a different config
opt := option.WithCredentialsFile("service-account-other.json")
otherApp, err := firebase.NewApp(context.Background(), nil, opt)
if err != nil {
	log.Fatalf("error initializing app: %v\n", err)
}

// Access Auth service from default app
defaultClient, err := defaultApp.Auth(context.Background())
if err != nil {
	log.Fatalf("error getting Auth client: %v\n", err)
}

// Access auth service from other app
otherClient, err := otherApp.Auth(context.Background())
if err != nil {
	log.Fatalf("error getting Auth client: %v\n", err)
} 

C #

 // Initialize the default app
var defaultApp = FirebaseApp.Create(defaultOptions);

// Initialize another app with a different config
var otherApp = FirebaseApp.Create(otherAppConfig, "other");

Console.WriteLine(defaultApp.Name); // "[DEFAULT]"
Console.WriteLine(otherApp.Name); // "other"

// Use the shorthand notation to retrieve the default app's services
var defaultAuth = FirebaseAuth.DefaultInstance;

// Use the otherApp variable to retrieve the other app's services
var otherAuth = FirebaseAuth.GetAuth(otherApp);
 

Gerçek Zamanlı Veritabanı ve Kimlik Doğrulaması için kapsam ayarlama

Gerçek Zamanlı Veritabanı veya Kimlik Doğrulaması için Google Uygulaması Varsayılan Kimlik Bilgilerine sahip bir Google Compute Engine VM'si kullanıyorsanız, doğru erişim kapsamlarını da ayarladığınızdan emin olun. Gerçek Zamanlı Veritabanı ve Kimlik Doğrulaması için userinfo.email ve cloud-platform veya firebase.database biten kapsamlara ihtiyacınız firebase.database . Varolan erişim kapsamlarını denetlemek ve değiştirmek için gcloud'u kullanarak aşağıdaki komutları çalıştırın.

gcloud

 # Check the existing access scopes
gcloud compute instances describe [INSTANCE_NAME] --format json

# The above command returns the service account information. For example:
  "serviceAccounts": [
   {
    "email": "your.gserviceaccount.com",
    "scopes": [
     "https://www.googleapis.com/auth/cloud-platform",
     "https://www.googleapis.com/auth/userinfo.email"
     ]
    }
  ],

# Stop the VM, then run the following command, using the service account
# that gcloud returned when you checked the scopes.

gcloud compute instances set-service-account [INSTANCE_NAME] --service-account "your.gserviceaccount.com" --scopes "https://www.googleapis.com/auth/firebase.database,https://www.googleapis.com/auth/userinfo.email"
 

Sonraki adımlar

Firebase hakkında bilgi edinin:

Uygulamanıza Firebase özellikleri ekleyin: