REST के अनुरोधों की पुष्टि करें

Firebase SDK टूल, आपकी ओर से Firebase रीयल टाइम डेटाबेस. हालांकि, जब आप किसी जिसमें क्लाइंट SDK टूल नहीं है या आपको दो चरणों में होने वाले ओवरहेड से बचना है स्थायी डेटाबेस कनेक्शन है, तो आप इसका उपयोग कर सकते हैं डेटा पढ़ने और उसमें बदलाव करने के लिए, रीयलटाइम डेटाबेस REST API.

इनमें से किसी एक तरीके से उपयोगकर्ताओं की पुष्टि करें:

  1. Google OAuth2 ऐक्सेस टोकन - आम तौर पर, Google OAuth2 ऐक्सेस टोकन से रीयलटाइम डेटाबेस में लिखने की सुविधा इसके ज़रिए कंट्रोल की जाती है रीयल टाइम डेटाबेस के नियम. हालांकि, आप अपने डेटा को ऐक्सेस कर सकते हैं और उस सर्वर को अपने सेवा खाते से जनरेट किए गए Google OAuth2 ऐक्सेस टोकन वाला डेटा.

  2. Firebase आईडी टोकन - हो सकता है कि आप पुष्टि किए गए अनुरोध भी भेजना चाहें एक व्यक्तिगत उपयोगकर्ता के रूप में, जैसे कि क्लाइंट SDK टूल. REST API, Firebase आईडी टोकन को स्वीकार करता है. इन टोकन का इस्तेमाल क्लाइंट SDK टूल.

Google OAuth2 ऐक्सेस टोकन

ऐसा कोई भी डेटा जो आपके कानूनी समझौते के मुताबिक सार्वजनिक तौर पर पढ़ा जा सकता हो या लिखा जा सकता हो रीयल टाइम डेटाबेस रूल पढ़ने लायक और लिखने लायक भी हैं REST API के ज़रिए बिना किसी पुष्टि के. हालांकि, अगर आपको अपने सर्वर की अपने रीयलटाइम डेटाबेस नियमों को बायपास करने के लिए, आपको अपने पढ़ने और लिखने की पुष्टि करनी होगी अनुरोध. Google OAuth2 से पुष्टि करने के लिए, ये चरण ज़रूरी हैं:

  1. ऐक्सेस टोकन जनरेट करें.
  2. इस ऐक्सेस टोकन से पुष्टि करें.

ऐक्सेस टोकन जनरेट करना

रीयलटाइम डेटाबेस REST API स्वीकार करता है स्टैंडर्ड Google OAuth2 ऐक्सेस टोकन. ऐक्सेस टोकन, सही तरीके से बनाए गए सेवा खाते का इस्तेमाल करके जनरेट किए जा सकते हैं आपके रीयलटाइम डेटाबेस की अनुमतियां होती हैं. 'नया निजी बनाएं' बॉक्स पर क्लिक करें सबसे नीचे मौजूद बटन सेवा खाते सेक्शन में जाकर, Firebase कंसोल के सेक्शन में जाकर आसानी से नई सेवा जनरेट की जा सकती है खाता कुंजी फ़ाइल अपलोड करें.

सेवा खाते की कुंजी वाली फ़ाइल बनाने के बाद, इनमें से किसी एक कुंजी का इस्तेमाल किया जा सकता है Google API क्लाइंट लाइब्रेरी नीचे दिए गए ज़रूरी दायरों वाला Google OAuth2 ऐक्सेस टोकन जनरेट करने के लिए:

  • https://www.googleapis.com/auth/userinfo.email
  • https://www.googleapis.com/auth/firebase.database

यहां लागू करने के कुछ उदाहरण दिए गए हैं, जिनमें Google OAuth2 बनाने का तरीका बताया गया है रीयलटाइम डेटाबेस REST API की पुष्टि करने के लिए टोकन ऐक्सेस करें उपलब्ध हैं:

Node.js

Google API क्लाइंट लाइब्रेरी का इस्तेमाल करके, Node.js:

var {google} = require("googleapis");

// Load the service account key JSON file.
var serviceAccount = require("path/to/serviceAccountKey.json");

// Define the required scopes.
var scopes = [
  "https://www.googleapis.com/auth/userinfo.email",
  "https://www.googleapis.com/auth/firebase.database"
];

// Authenticate a JWT client with the service account.
var jwtClient = new google.auth.JWT(
  serviceAccount.client_email,
  null,
  serviceAccount.private_key,
  scopes
);

// Use the JWT client to generate an access token.
jwtClient.authorize(function(error, tokens) {
  if (error) {
    console.log("Error making request to generate access token:", error);
  } else if (tokens.access_token === null) {
    console.log("Provided service account does not have permission to generate access tokens");
  } else {
    var accessToken = tokens.access_token;

    // See the "Using the access token" section below for information
    // on how to use the access token to send authenticated requests to
    // the Realtime Database REST API.
  }
});

Java

Google API क्लाइंट लाइब्रेरी का इस्तेमाल करके, Java:

// Load the service account key JSON file
FileInputStream serviceAccount = new FileInputStream("path/to/serviceAccountKey.json");

// Authenticate a Google credential with the service account
GoogleCredential googleCred = GoogleCredential.fromStream(serviceAccount);

// Add the required scopes to the Google credential
GoogleCredential scoped = googleCred.createScoped(
    Arrays.asList(
      "https://www.googleapis.com/auth/firebase.database",
      "https://www.googleapis.com/auth/userinfo.email"
    )
);

// Use the Google credential to generate an access token
scoped.refreshToken();
String token = scoped.getAccessToken();

// See the "Using the access token" section below for information
// on how to use the access token to send authenticated requests to the
// Realtime Database REST API.

Python

google-auth का इस्तेमाल करके लाइब्रेरी:

from google.oauth2 import service_account
from google.auth.transport.requests import AuthorizedSession

# Define the required scopes
scopes = [
  "https://www.googleapis.com/auth/userinfo.email",
  "https://www.googleapis.com/auth/firebase.database"
]

# Authenticate a credential with the service account
credentials = service_account.Credentials.from_service_account_file(
    "path/to/serviceAccountKey.json", scopes=scopes)

# Use the credentials object to authenticate a Requests session.
authed_session = AuthorizedSession(credentials)
response = authed_session.get(
    "https://<DATABASE_NAME>.firebaseio.com/users/ada/name.json")

# Or, use the token directly, as described in the "Authenticate with an
# access token" section below. (not recommended)
request = google.auth.transport.requests.Request()
credentials.refresh(request)
access_token = credentials.token

ऐक्सेस टोकन से पुष्टि करें

रीयलटाइम डेटाबेस REST API को पुष्टि किए गए अनुरोध भेजने के लिए, Google OAuth2 ऐक्सेस टोकन ऊपर जनरेट किया गया है, क्योंकि Authorization: Bearer <ACCESS_TOKEN> हेडर या access_token=<ACCESS_TOKEN> क्वेरी स्ट्रिंग पैरामीटर. यहां curl का एक उदाहरण दिया गया है अदा का नाम पढ़ने के लिए अनुरोध करें:

curl "https://<DATABASE_NAME>.firebaseio.com/users/ada/name.json?access_token=<ACCESS_TOKEN>"

<DATABASE_NAME> को अपने उस नाम से बदलना पक्का करें Google OAuth2 ऐक्सेस टोकन के साथ रीयलटाइम डेटाबेस और <ACCESS_TOKEN>.

सफल अनुरोध को 200 OK एचटीटीपी स्टेटस कोड से दिखाया जाएगा. कॉन्टेंट बनाने रिस्पॉन्स में, हासिल किया जाने वाला डेटा शामिल है:

{"first":"Ada","last":"Lovelace"}

Firebase आईडी के टोकन

जब कोई उपयोगकर्ता या डिवाइस, Firebase से पुष्टि करने की सुविधा का इस्तेमाल करके साइन इन करता है, तो Firebase संबंधित आईडी टोकन, जो खास तौर पर उनकी पहचान करता है और उन्हें ऐक्सेस देता है रीयलटाइम डेटाबेस और Cloud Storage जैसे कई संसाधन. दोबारा इस्तेमाल किया जा सकता है रीयलटाइम डेटाबेस REST API की पुष्टि करने और अनुरोध करने के लिए वह आईडी टोकन उस उपयोगकर्ता की ओर से.

आईडी टोकन जनरेट करें

क्लाइंट से Firebase आईडी टोकन फिर से पाने के लिए, क्लाइंट पर आईडी टोकन वापस पाना.

ध्यान दें कि आईडी टोकन की समयसीमा कुछ समय बाद खत्म हो जाती है. इसलिए, इनका इस्तेमाल किया जाना चाहिए उन्हें वापस पाने के बाद जितनी जल्दी हो सके.

आईडी टोकन से पुष्टि करें

रीयलटाइम डेटाबेस REST API को पुष्टि किए गए अनुरोध भेजने के लिए, आईडी टोकन को ऊपर auth=<ID_TOKEN> क्वेरी स्ट्रिंग पैरामीटर के तौर पर जनरेट किया गया है. यहां यह Ada का नाम पढ़ने के लिए curl अनुरोध का एक उदाहरण है:

curl "https://<DATABASE_NAME>.firebaseio.com/users/ada/name.json?auth=<ID_TOKEN>"

<DATABASE_NAME> को अपने उस नाम से बदलना पक्का करें Firebase आईडी टोकन के साथ रीयलटाइम डेटाबेस और <ID_TOKEN>.

सफल अनुरोध को 200 OK एचटीटीपी स्टेटस कोड से दिखाया जाएगा. कॉन्टेंट बनाने रिस्पॉन्स में, हासिल किया जाने वाला डेटा शामिल है:

{"first":"Ada","last":"Lovelace"}

लेगसी टोकन

अगर अब भी लेगसी Firebase पुष्टि टोकन का इस्तेमाल किया जा रहा है, तो हमारा सुझाव है कि अपने REST की पुष्टि करने के तरीके को, बताए गए किसी एक तरीके पर अपडेट करना पढ़ें.

रीयलटाइम डेटाबेस REST API, लेगसी के ज़रिए पुष्टि करने की सुविधा अब भी देता है पुष्टि करने वाले टोकन, जिनमें सीक्रेट शामिल हैं. आपके रीयलटाइम डेटाबेस सीक्रेट यहां देखे जा सकते हैं यह सेवा खाते सेक्शन पर जाएं.

सीक्रेट, लंबे समय तक चलने वाले क्रेडेंशियल होते हैं. हमारा सुझाव है कि आप नया सीक्रेट जनरेट करें और सीक्रेट ऐक्सेस वाले उपयोगकर्ताओं को हटाते समय मौजूदा एक्सटेंशन को निरस्त करना (जैसे मालिक).