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

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

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

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

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

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

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

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

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

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

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

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

यहां लागू करने के कुछ उदाहरण दिए गए हैं, जिनमें Google OAuth2 बनाने का तरीका बताया गया है Realtime Database 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

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

Realtime Database 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 ऐक्सेस टोकन के साथ Realtime Database और <ACCESS_TOKEN>.

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

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

Firebase आईडी के टोकन

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

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

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

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

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

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

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

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

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

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

लेगसी टोकन

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

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

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