প্রমাণীকরণ করুন এবং একটি ডাটাবেসের সাথে সংযোগ করুন

শুধুমাত্র ক্লাউড ফায়ারস্টোর এন্টারপ্রাইজ সংস্করণের জন্য প্রাসঙ্গিক।

সংযোগের প্রয়োজনীয়তা

MongoDB সামঞ্জস্যপূর্ণ ক্লায়েন্টগুলির সাথে ক্লাউড ফায়ারস্টোরের জন্য নিম্নলিখিতগুলি প্রয়োজন:

  • ড্রাইভারদের অবশ্যই load balanced মোডে সংযোগ করতে হবে। এটি ড্রাইভারদের সঠিক সার্ভার টপোলজি বোঝার চেষ্টা করতে বাধা দেয় যে তারা সংযোগ করছে।
  • ড্রাইভারদের অবশ্যই SSL সক্ষম করে সংযোগ করতে হবে৷
  • ড্রাইভারদের অবশ্যই পুনরায় চেষ্টা করার যোগ্য লেখাগুলি অক্ষম করতে হবে। MongoDB সামঞ্জস্য সহ ক্লাউড ফায়ারস্টোর পুনরায় চেষ্টাযোগ্য লেখাগুলিকে সমর্থন করে না। সেগুলি সমর্থিত হওয়ায় আপনাকে পুনরায় চেষ্টাযোগ্য পঠনগুলি অক্ষম করার দরকার নেই৷

সংযোগ স্ট্রিং পুনরুদ্ধার করুন

ডাটাবেস সংযোগ স্ট্রিং ডাটাবেসের UID, ডাটাবেসের অবস্থান এবং প্রমাণীকরণ প্রক্রিয়ার উপর নির্ভর করে। নিম্নলিখিত নির্দেশাবলী বর্ণনা করে কিভাবে সংযোগ স্ট্রিং গঠিত হয়।

সঠিক সংযোগ স্ট্রিং প্রমাণীকরণ প্রক্রিয়ার উপর নির্ভর করে, কিন্তু বেস সংযোগ স্ট্রিং নিম্নলিখিত বিন্যাস ব্যবহার করে:

mongodb://UID.LOCATION.firestore.goog:443/DATABASE_ID?loadBalanced=true&tls=true&retryWrites=false

আপনি নিম্নলিখিত উপায়গুলির মধ্যে একটিতে বেস সংযোগ স্ট্রিং পেতে পারেন:

Firebase কনসোল
  1. Firebase কনসোলে, ফায়ারস্টোর ডেটাবেস পৃষ্ঠায় যান।

    ফায়ারস্টোর ডাটাবেসে যান

  2. আপনি প্রমাণীকরণ করতে চান যে ডাটাবেস ক্লিক করুন.
  3. এক্সপ্লোরার প্যানেলে, আরও দেখুন ক্লিক করুন।
  4. MongoDB টুল ব্যবহার করে সংযোগ নির্বাচন করুন।
  5. সংযোগ স্ট্রিং অনুলিপি করুন.
জিক্লাউড

UID এবং অবস্থানের তথ্য পুনরুদ্ধার করতে gcloud firestore database describe ব্যবহার করুন:

gcloud firestore databases describe \
--database=DATABASE_ID \
--format='yaml(locationId, uid)'

ডেটাবেস আইডি দিয়ে DATABASE_ID প্রতিস্থাপন করুন।

আউটপুট ডাটাবেসের অবস্থান এবং UID অন্তর্ভুক্ত করে। বেস সংযোগ স্ট্রিং নির্মাণ করতে এই তথ্য ব্যবহার করুন.

আপনার ডাটাবেসের সাথে প্রমাণীকরণ এবং সংযোগ করতে বেস সংযোগ স্ট্রিং এবং নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করুন:

ব্যবহারকারীর নাম এবং পাসওয়ার্ডের সাথে সংযোগ করুন (SCRAM)

আপনার ডাটাবেসের জন্য একটি ব্যবহারকারীর শংসাপত্র তৈরি করতে এবং আপনার ডাটাবেসের সাথে সংযোগ করতে এই পদক্ষেপগুলি অনুসরণ করুন।

আপনি শুরু করার আগে

একজন ব্যবহারকারী তৈরি করার জন্য আপনাকে যে অনুমতিগুলি প্রয়োজন তা পেতে, আপনার অ্যাডমিনিস্ট্রেটরকে আপনার ডাটাবেসে userCredsAdmin ( roles/datastore.userCredsAdmin ) IAM ভূমিকা দেওয়ার জন্য বলুন৷ ভূমিকা প্রদান সম্পর্কে আরও তথ্যের জন্য, প্রকল্প, ফোল্ডার এবং সংস্থাগুলিতে অ্যাক্সেস পরিচালনা করুন দেখুন।

আপনি কাস্টম ভূমিকা বা অন্যান্য পূর্বনির্ধারিত ভূমিকার মাধ্যমে প্রয়োজনীয় অনুমতি পেতে সক্ষম হতে পারেন৷

একটি ব্যবহারকারী তৈরি করুন এবং একটি ডাটাবেসের সাথে সংযোগ করুন

MongoDB সামঞ্জস্যপূর্ণ ডাটাবেসের সাথে আপনার ক্লাউড ফায়ারস্টোরের জন্য একজন ব্যবহারকারী তৈরি করতে, নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করুন:

গুগল ক্লাউড কনসোল
  1. Google ক্লাউড কনসোলে, ডেটাবেস পৃষ্ঠায় যান।

    ডাটাবেসে যান

  2. ডাটাবেসের তালিকা থেকে একটি ডাটাবেস নির্বাচন করুন।
  3. নেভিগেশন মেনুতে, Auth-এ ক্লিক করুন।
  4. ব্যবহারকারী যোগ করুন ক্লিক করুন.
  5. একটি ব্যবহারকারীর নাম লিখুন।
  6. নতুন ব্যবহারকারীর জন্য একটি ভূমিকা নির্বাচন করুন।
  7. যোগ করুন ক্লিক করুন.

    নতুন ব্যবহারকারীর পাসওয়ার্ড নিশ্চিতকরণ ডায়ালগে প্রদর্শিত হবে।

gcloud CLI
  1. SCRAM দিয়ে প্রমাণীকরণ করতে, আপনাকে প্রথমে একটি ব্যবহারকারীর শংসাপত্র তৈরি করতে হবে। gcloud firestore user-creds কমান্ড ব্যবহার করুন:
    gcloud firestore user-creds create USERNAME --database=DATABASE_ID
    নিম্নলিখিতগুলি প্রতিস্থাপন করুন:
    • USERNAME : তৈরি করার জন্য ব্যবহারকারীর নাম৷
    • DATABASE_ID : ডাটাবেস আইডি।

    এই কমান্ডের আউটপুট ব্যবহারকারীর পাসওয়ার্ড অন্তর্ভুক্ত.

    আউটপুট নিম্নলিখিত অনুরূপ:

    name: projects/PROJECT_NAME/databases/DATABASE_ID/userCreds/USERNAME
    resourceIdentity:
      principal: principal://firestore.googleapis.com/projects/PROJECT_NUMBER/name/databases/DATABASE_ID/userCreds/USERNAME
    securePassword: PASSWORD
  2. ডিফল্টরূপে, এই নতুন ব্যবহারকারীর শংসাপত্রের কোনো অনুমতি নেই। ডাটাবেসে পড়ার এবং লেখার অ্যাক্সেসের জন্য, এই নির্দিষ্ট ডাটাবেসের জন্য roles/datastore.user ভূমিকা যোগ করুন:

    gcloud projects add-iam-policy-binding PROJECT_NAME \
    --member='principal://firestore.googleapis.com/projects/PROJECT_NUMBER/name/databases/DATABASE_ID/userCreds/USERNAME' \
    --role=roles/datastore.user \
    --condition='expression=resource.name == "projects/PROJECT_NAME/databases/DATABASE_ID",title="CONDITION_TITLE"'
    নিম্নলিখিতগুলি প্রতিস্থাপন করুন:
জাভা

এই বিভাগটি জাভা প্রশাসনিক ক্লায়েন্ট লাইব্রেরি ব্যবহার করে ব্যবহারকারীর শংসাপত্র তৈরি এবং IAM নীতি কনফিগার করার জন্য একটি কোড উদাহরণ প্রদান করে। নমুনাটি একটি ব্যবহারকারীর নাম এবং পাসওয়ার্ড তৈরি করার জন্য Firestore অ্যাডমিন ক্লায়েন্ট লাইব্রেরি এবং IAM কনফিগার করার জন্য Google ক্লাউড রিসোর্স ম্যানেজার লাইব্রেরি ব্যবহার করে।

Maven বিল্ডগুলির জন্য, আপনি নিম্নলিখিত স্থানাঙ্কগুলি ব্যবহার করতে পারেন:

com.google.cloud:google-cloud-firestore-admin:3.33.1
com.google.cloud:google-cloud-resourcemanager:1.76.0

ব্যবহারকারীর শংসাপত্র এবং একটি IAM নীতি প্রদান করুন:

import com.google.cloud.firestore.v1.FirestoreAdminClient;
import com.google.cloud.resourcemanager.v3.ProjectName;
import com.google.cloud.resourcemanager.v3.ProjectsClient;
import com.google.firestore.admin.v1.CreateUserCredsRequest;
import com.google.firestore.admin.v1.GetUserCredsRequest;
import com.google.firestore.admin.v1.UserCreds;
import com.google.iam.v1.Binding;
import com.google.iam.v1.GetIamPolicyRequest;
import com.google.iam.v1.GetPolicyOptions;
import com.google.iam.v1.Policy;
import com.google.iam.v1.SetIamPolicyRequest;
import com.google.protobuf.FieldMask;
import com.google.type.Expr;

public class FirestoreUserCredsExample {
  /**
   * Provision user credentials and configure an IAM policy to allow SCRAM authentication into the
   * specified Firestore with Mongo Compatibility database.
   */
  private static void provisionFirestoreUserCredsAndIAM(
      String projectId, String databaseId, String userName) throws Exception {
    UserCreds userCreds = createUserCreds(projectId, databaseId, userName);

    // Note the password returned in the UserCreds proto - it cannot be retrieved again
    // after the initial call to the createUserCreds API.
    System.out.printf(
        "Created credentials for username: %s:\nIAM principal: %s\nPassword: [%s]\n",
        userName, userCreds.getResourceIdentity().getPrincipal(), userCreds.getSecurePassword());

    // Provision an IAM binding for the principal associated with these user credentials.
    updateIamPolicyForUserCreds(projectId, databaseId, userName, userCreds);

    // Emit the password again.
    System.out.printf(
        "Successfully configured IAM policy for database: %s, username: %s\n",
        databaseId, userName);
    System.out.printf("Please make a note of the password: [%s]\n", userCreds.getSecurePassword());
  }

  /** Provision new user credentials using the FirestoreAdminClient. */
  private static UserCreds createUserCreds(String projectId, String databaseId, String userName)
      throws Exception {
    FirestoreAdminClient firestoreAdminClient = FirestoreAdminClient.create();
    return firestoreAdminClient.createUserCreds(
        CreateUserCredsRequest.newBuilder()
            .setParent(String.format("projects/%s/databases/%s", projectId, databaseId))
            .setUserCredsId(userName)
            .build());
  }

  /** Update the IAM policy using the Resource Manager ProjectsClient. */
  private static void updateIamPolicyForUserCreds(
      String projectId, String databaseId, String userName, UserCreds userCreds) throws Exception {
    try (ProjectsClient projectsClient = ProjectsClient.create()) {
      ProjectName projectName = ProjectName.of(projectId);

      // Get the current IAM policy.
      Policy currentPolicy =
          projectsClient.getIamPolicy(
              GetIamPolicyRequest.newBuilder()
                  .setResource(projectName.toString())
                  .setOptions(GetPolicyOptions.newBuilder().setRequestedPolicyVersion(3).build())
                  .build());

      String role = "roles/datastore.user";
      String title = String.format("Conditional IAM binding for %s", userName);
      String expression =
          String.format("resource.name == \"projects/%s/databases/%s\"", projectId, databaseId);

      // Construct an updated IAM policy with an additional binding for the user credentials.
      Policy.Builder policyBuilder = currentPolicy.toBuilder();
      Binding newBinding =
          Binding.newBuilder()
              .setRole(role)
              .setCondition(Expr.newBuilder().setTitle(title).setExpression(expression).build())
              .addMembers(userCreds.getResourceIdentity().getPrincipal())
              .build();
      policyBuilder.addBindings(newBinding);

      // Update the policy
      SetIamPolicyRequest request =
          SetIamPolicyRequest.newBuilder()
              .setResource(projectName.toString())
              .setPolicy(policyBuilder.build())
              .setUpdateMask(FieldMask.newBuilder().addPaths("bindings").addPaths("etag").build())
              .build();
      System.out.println(request);

      Policy updatedPolicy = projectsClient.setIamPolicy(request);
      System.out.println("Policy updated successfully: " + updatedPolicy);
    }
  }
}
পাইথন

এই বিভাগটি পাইথন প্রশাসনিক ক্লায়েন্ট লাইব্রেরি ব্যবহার করে ব্যবহারকারীর শংসাপত্র তৈরি এবং IAM নীতি কনফিগার করার জন্য একটি কোড উদাহরণ প্রদান করে। নমুনাটি ব্যবহারকারীর নাম এবং পাসওয়ার্ড তৈরি করার জন্য Google ক্লাউড ফায়ারস্টোর API ক্লায়েন্ট লাইব্রেরি এবং IAM কনফিগার করার জন্য Google Cloud Iam API ক্লায়েন্ট লাইব্রেরি এবং Google ক্লাউড রিসোর্স ম্যানেজার API ক্লায়েন্ট লাইব্রেরি ব্যবহার করে।

প্রয়োজনীয় পাইথন লাইব্রেরিগুলি পিপ টুল দিয়ে ইনস্টল করা যেতে পারে:

pip install google-cloud-iam
pip install google-cloud-firestore
pip install google-cloud-resource-manager

ব্যবহারকারীর শংসাপত্র এবং একটি IAM নীতি প্রদান করুন:

from google.cloud import resourcemanager_v3
from google.cloud.firestore_admin_v1 import FirestoreAdminClient
from google.cloud.firestore_admin_v1 import types
from google.iam.v1 import iam_policy_pb2
from google.iam.v1 import policy_pb2
from google.type import expr_pb2


def create_user_creds(project_id: str, database_id: str, user_name: str):
  """Provision new user credentials using the FirestoreAdminClient."""
  client = FirestoreAdminClient()
  request = types.CreateUserCredsRequest(
      parent=f'projects/{project_id}/databases/{database_id}',
      user_creds_id=user_name,
  )
  response = client.create_user_creds(request)
  return response


def update_iam_policy_for_user_creds(
    project_id: str, database_id: str, user_name: str, user_creds
):
  """Update the IAM policy using the Resource Manager ProjectsClient."""
  client = resourcemanager_v3.ProjectsClient()
  request = iam_policy_pb2.GetIamPolicyRequest()
  request.resource = f'projects/{project_id}'
  request.options.requested_policy_version = 3

  # Get the current IAM policy
  current_policy = client.get_iam_policy(request)

  # Construct an updated IAM policy with an additional binding
  # for the user credentials.
  updated_policy = policy_pb2.Policy()
  binding = policy_pb2.Binding()
  iam_condition = expr_pb2.Expr()

  iam_condition.title = f'Conditional IAM binding for {user_name}'
  iam_condition.expression = (
      f'resource.name == "projects/{project_id}/databases/{database_id}"'
  )

  binding.role = 'roles/datastore.user'
  binding.condition.CopyFrom(iam_condition)
  binding.members.append(user_creds.resource_identity.principal)
  updated_policy.bindings.append(binding)

  # Update the policy
  updated_policy.MergeFrom(current_policy)
  set_policy_request = iam_policy_pb2.SetIamPolicyRequest()
  set_policy_request.resource = f'projects/{project_id}'
  set_policy_request.policy.CopyFrom(updated_policy)

  final_policy = client.set_iam_policy(set_policy_request)
  print(f'Policy updated successfully {final_policy}')


def provision_firestore_user_creds_and_iam(
    project_id: str, database_id: str, user_name: str
):
  """Provision user credentials and configure an IAM policy."""
  user_creds = create_user_creds(project_id, database_id, user_name)

  # Note the password returned in the UserCreds proto - it cannot be
  # retrieved again after the initial call to the create_user_creds API.
  print(f'Created credentials for username: {user_name}')
  print(f'IAM principal: {user_creds.resource_identity.principal}')
  print(f'Password: [{user_creds.secure_password}]')

  # Provision an IAM binding for the principal associated with
  # these user credentials.
  update_iam_policy_for_user_creds(
      project_id, database_id, user_name, user_creds
  )

  # Emit the password again
  print(
      f'Successfully configured IAM policy for database: {database_id},'
      f' username: {user_name}'
  )
  print(f'Please make a note of the password: [{user_creds.secure_password}]')

SCRAM এর সাথে আপনার ডাটাবেসের সাথে সংযোগ করতে নিম্নলিখিত সংযোগ স্ট্রিংটি ব্যবহার করুন:

mongodb://USERNAME:PASSWORD@UID.LOCATION.firestore.goog:443/DATABASE_ID?loadBalanced=true&authMechanism=SCRAM-SHA-256&tls=true&retryWrites=false

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

  • USERNAME : ব্যবহারকারীর নাম।
  • PASSWORD : এই ব্যবহারকারীর জন্য আপনি যে পাসওয়ার্ড তৈরি করেছেন।
  • UID : ডাটাবেসের UID।
  • LOCATION : ডাটাবেসের অবস্থান।
  • DATABASE_ID : ডাটাবেস আইডি।

Google Auth লাইব্রেরির সাথে সংযোগ করুন৷

নিম্নলিখিত কোড নমুনা একটি OIDC কলব্যাক হ্যান্ডলার নিবন্ধন করে Google Cloud স্ট্যান্ডার্ড OAuth লাইব্রেরি ব্যবহার করে।

এই লাইব্রেরিটি আপনাকে বিভিন্ন ধরণের প্রমাণীকরণ (অ্যাপ্লিকেশন ডিফল্ট শংসাপত্র, ওয়ার্কলোড আইডেন্টিটি ফেডারেশন) ব্যবহার করতে দেয়।

এটি একটি নির্ভরতা হিসাবে প্রমাণীকরণ লাইব্রেরি যোগ করা প্রয়োজন:

// Maven
<dependency>
  <groupId>com.google.auth</groupId>
  <artifactId>google-auth-library-oauth2-http</artifactId>
  <version>1.19.0</version>
</dependency>

// Gradle
implementation 'com.google.auth:google-auth-library-oauth2-http:1.19.0'

নিম্নলিখিত কোড নমুনা দেখায় কিভাবে সংযোগ করতে হয়:

val db = MongoClients.create(
    clientSettings(
      "DATABASE_UID",
      "LOCATION"
    ).build()
  ).getDatabase("DATABASE_ID")


/**
 * Creates a connection to a Firestore with MongoDB Compatibility database.
 * @param databaseUid The uid of the database to connect to as a string. For example: f116f93a-519c-208a-9a72-3ef6c9a1f081
 * @param locationId The location of the database to connect to, for example: nam5, us-central1, us-east4 etc...
 * @param environment Determines whether to try and fetch an authentication credential from the
 * Compute Engine VM metadata service or whether to call gcloud.
 */
private static MongoClientSettings.Builder clientSettings(
  String databaseUid: String
  String locationId:String
): MongoClientSettings.Builder {
  MongoCredential credential =
    MongoCredential.createOidcCredential(null)
      .withMechanismProperty(
        MongoCredential.OIDC_CALLBACK_KEY,
        new MongoCredential.OidcCallback() {
          @Override
          MongoCredential.OidcCallbackResult onRequest(
MongoCredential.OidcCallbackContext context) {
     // Customize this credential builder for additional credential types.
     GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();
            return new MongoCredential.OidcCallbackResult(
         credentials.getAccessToken().getTokenValue(),
         Duration.between(Instant.now(),
credentials.getAccessToken().getExpirationTime().toInstant()));
          }
        },
      );
  return MongoClientSettings.builder()
    .hosts(listOf(ServerAddress(
        "$databaseUid.$locationId.firestore.goog", 443)))
    .credential(credential)
    .applyToClusterSettings(builder ->
         builder.mode(ClusterConnectionMode.LOAD_BALANCED))
    ).applyToSslSettings(ssl -> ssl.enabled(true)).retryWrites(false);
}

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

  • DATABASE_UID : আপনার প্রকল্পের নাম।
  • LOCATION : আপনার ডাটাবেসের অবস্থান।
  • DATABASE_ID ডাটাবেস আইডি।

একটি Google Cloud কম্পিউট পরিবেশ থেকে সংযোগ করুন৷

এই বিভাগটি Google Cloud কম্পিউট পরিবেশ, যেমন Compute Engine বা Cloud Run পরিষেবা বা চাকরি থেকে MongoDB সামঞ্জস্যের সাথে ক্লাউড ফায়ারস্টোরের সাথে সংযোগ করার বর্ণনা করে।

একটি Compute Engine VM থেকে সংযোগ করুন

আপনি একটি Compute Engine পরিষেবা অ্যাকাউন্ট ব্যবহার করে আপনার ডাটাবেসের সাথে প্রমাণীকরণ এবং সংযোগ করতে পারেন। এটি করার জন্য, Google Cloud প্রকল্পের জন্য একটি IAM নীতি তৈরি করুন যাতে আপনার ডেটাবেস রয়েছে৷

আপনি শুরু করার আগে

আপনার VM-এর জন্য একটি ব্যবহারকারী-পরিচালিত পরিষেবা অ্যাকাউন্ট কনফিগার করুন:

আপনার Compute Engine পরিষেবা অ্যাকাউন্টের জন্য IAM নীতি কনফিগারেশন সম্পূর্ণ করতে শংসাপত্র কনফিগার করুন বিভাগে নির্দেশাবলী দেখুন।

Cloud Run থেকে সংযোগ করুন

আপনি একটি Cloud Run পরিষেবা অ্যাকাউন্ট ব্যবহার করে আপনার ডাটাবেসের সাথে প্রমাণীকরণ এবং সংযোগ করতে পারেন। এটি করার জন্য, Google Cloud প্রকল্পের জন্য একটি IAM নীতি তৈরি করুন যাতে আপনার ডেটাবেস রয়েছে৷

আপনি শুরু করার আগে

আপনার Cloud Run পরিষেবা অ্যাকাউন্টের জন্য IAM নীতি কনফিগারেশন সম্পূর্ণ করতে শংসাপত্র কনফিগার করুন বিভাগে নির্দেশাবলী দেখুন।

শংসাপত্র কনফিগার করুন

Cloud Firestore পড়া এবং লেখার জন্য পরিষেবা অ্যাকাউন্টটিকে roles/datastore.user ভূমিকা প্রদান করতে, নিম্নলিখিত কমান্ডটি চালান:

gcloud projects add-iam-policy-binding PROJECT_NAME --member="SERVICE_ACCOUNT_EMAIL" --role=roles/datastore.user

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

  • PROJECT_NAME : আপনার প্রকল্পের নাম।
  • SERVICE_ACCOUNT_EMAIL : আপনার তৈরি করা পরিষেবা অ্যাকাউন্টের ইমেল ঠিকানা।

সংযোগ স্ট্রিং তৈরি করুন

সংযোগ স্ট্রিং নির্মাণ করতে নিম্নলিখিত বিন্যাস ব্যবহার করুন:

mongodb://DATABASE_UID.LOCATION.firestore.goog:443/DATABASE_ID?loadBalanced=true&tls=true&retryWrites=false&authMechanism=MONGODB-OIDC&authMechanismProperties=ENVIRONMENT:gcp,TOKEN_RESOURCE:FIRESTORE

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

  • DATABASE_UID : আপনার প্রকল্পের নাম।
  • LOCATION : আপনার ডাটাবেসের অবস্থান।
  • DATABASE_ID ডাটাবেস আইডি।

UID এবং অবস্থান পুনরুদ্ধার সম্পর্কে আরও তথ্যের জন্য, সংযোগ স্ট্রিং পুনরুদ্ধার দেখুন।

একটি অস্থায়ী অ্যাক্সেস টোকেনের সাথে সংযোগ করুন

আপনি একটি অস্থায়ী Google Cloud অ্যাক্সেস টোকেন ব্যবহার করতে পারেন ডায়াগনস্টিক টুল যেমন mongosh চালাতে। আপনি স্বল্প-মেয়াদী অ্যাক্সেস টোকেন দিয়ে প্রমাণীকরণ করতে gcloud auth print-access-token ব্যবহার করতে পারেন। এই টোকেন এক ঘন্টার জন্য বৈধ।

উদাহরণস্বরূপ, mongosh সাথে আপনার ডাটাবেসের সাথে সংযোগ করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

mongosh --tls \
      --username access_token --password $(gcloud auth print-access-token) \
      'mongodb://UID.LOCATION.firestore.goog:443/DATABASE_ID?loadBalanced=true&authMechanism=PLAIN&authSource=$external&retryWrites=false'

নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

  • DATABASE_UID : ডাটাবেসের UID
  • LOCATION : ডাটাবেসের অবস্থান
  • DATABASE_ID : একটি ডাটাবেস আইডি