Firebase SQL Connect ক্লায়েন্ট এসডিকে আপনাকে সরাসরি একটি ফায়ারবেস অ্যাপ থেকে আপনার সার্ভার-সাইড কোয়েরি এবং মিউটেশন কল করার সুযোগ দেয়। আপনি আপনার SQL Connect সার্ভিসে যে স্কিমা, কোয়েরি এবং মিউটেশনগুলো ডেপ্লয় করবেন, সেগুলোর ডিজাইন করার পাশাপাশি একটি কাস্টম ক্লায়েন্ট এসডিকে তৈরি করেন। তারপর, এই এসডিকে-র মেথডগুলো আপনার ক্লায়েন্ট লজিকে ইন্টিগ্রেট করেন।
আমরা অন্যত্র যেমন উল্লেখ করেছি, এটা মনে রাখা গুরুত্বপূর্ণ যে SQL Connect কোয়েরি এবং মিউটেশনগুলো ক্লায়েন্ট কোড দ্বারা সাবমিট করা হয় না এবং সার্ভারে এক্সিকিউট করা হয় না। পরিবর্তে, ডেপ্লয় করার সময়, SQL Connect অপারেশনগুলো ক্লাউড ফাংশনের মতো সার্ভারে সংরক্ষিত হয়। এর মানে হলো, বিদ্যমান ব্যবহারকারীদের (উদাহরণস্বরূপ, অ্যাপের পুরোনো সংস্করণগুলোতে) সমস্যা এড়াতে আপনাকে সংশ্লিষ্ট ক্লায়েন্ট-সাইড পরিবর্তনগুলো ডেপ্লয় করতে হবে।
এই কারণেই SQL Connect আপনাকে এমন একটি ডেভেলপার পরিবেশ এবং টুলিং প্রদান করে, যা দিয়ে আপনি আপনার সার্ভারে ডেপ্লয় করা স্কিমা, কোয়েরি এবং মিউটেশনগুলোর প্রোটোটাইপ তৈরি করতে পারেন। এছাড়াও, আপনি প্রোটোটাইপ করার সময় এটি স্বয়ংক্রিয়ভাবে ক্লায়েন্ট-সাইড SDK তৈরি করে দেয়।
যখন আপনি আপনার পরিষেবা এবং ক্লায়েন্ট অ্যাপগুলিতে আপডেটগুলি পুনরাবৃত্তি করবেন, তখন সার্ভার- এবং ক্লায়েন্ট-সাইড উভয় আপডেটই স্থাপনের জন্য প্রস্তুত হয়ে যাবে।
ক্লায়েন্ট ডেভেলপমেন্ট ওয়ার্কফ্লো কী?
আপনি যদি ' Get started' অংশটি অনুসরণ করে থাকেন, তাহলে আপনাকে SQL Connect এর সামগ্রিক ডেভেলপমেন্ট ফ্লো-এর সাথে পরিচয় করিয়ে দেওয়া হয়েছে। এই গাইডে, আপনি আপনার স্কিমা থেকে ওয়েব এসডিকে (Web SDK) তৈরি করা এবং ক্লায়েন্ট কোয়েরি ও মিউটেশন নিয়ে কাজ করার বিষয়ে আরও বিস্তারিত তথ্য পাবেন।
সংক্ষেপে, আপনার ক্লায়েন্ট অ্যাপে তৈরি করা ওয়েব এসডিকে ব্যবহার করতে হলে, আপনাকে এই পূর্বশর্তমূলক ধাপগুলো অনুসরণ করতে হবে:
- আপনার ওয়েব অ্যাপে ফায়ারবেস যুক্ত করুন।
তারপর:
- আপনার অ্যাপের স্কিমা তৈরি করুন।
- জাভাস্ক্রিপ্ট এসডিকে , অথবা রিয়্যাক্ট বা অ্যাঙ্গুলার লাইব্রেরি ব্যবহার করে আপনার ক্লায়েন্ট কোড চালু করুন।
- React এবং Angular-এর জন্য Tanstack Query প্যাকেজগুলো ইনস্টল করুন ।
SDK জেনারেশন সেট আপ করুন:
- আমাদের SQL Connect VS Code এক্সটেনশনে থাকা 'Add SDK to app' বাটনটির মাধ্যমে
- JavaScript SDK , React বা Angular-এর জন্য আপনার
connector.yamlআপডেট করার মাধ্যমে।
জাভাস্ক্রিপ্ট এসডিকে , অথবা রিয়্যাক্ট বা অ্যাঙ্গুলার ব্যবহার করে লাইব্রেরি এবং জেনারেটেড কোড ইম্পোর্ট করুন।
জাভাস্ক্রিপ্ট এসডিকে , অথবা রিয়্যাক্ট বা অ্যাঙ্গুলার ব্যবহার করে কোয়েরি এবং মিউটেশন কলগুলো বাস্তবায়ন করুন।
জাভাস্ক্রিপ্ট এসডিকে , রিয়্যাক্ট বা অ্যাঙ্গুলার ব্যবহার করে SQL Connect এমুলেটর সেট আপ করে পরীক্ষা করুন।
Firebase JavaScript SDK ব্যবহার করে ক্লায়েন্ট কোড বাস্তবায়ন করুন।
এই অংশে আলোচনা করা হয়েছে কিভাবে আপনি Firebase JavaScript এসডিকে ব্যবহার করে ক্লায়েন্ট বাস্তবায়ন করতে পারেন।
আপনি যদি React বা Angular ব্যবহার করেন, তাহলে ফ্রেমওয়ার্কগুলোর জন্য SQL Connect SDK তৈরি করার বিষয়ে বিকল্প সেটআপ নির্দেশাবলী এবং অতিরিক্ত ডকুমেন্টেশনের লিঙ্কগুলো দেখুন।
আপনার অ্যাপটি চালু করুন
প্রথমে, ফায়ারবেসের প্রচলিত পদ্ধতি অনুসরণ করে আপনার অ্যাপটি চালু করুন।
initializeApp({...});
তৈরি করা জাভাস্ক্রিপ্ট SDK ইনস্টল করুন
আপনার অ্যাপগুলিতে SQL Connect দ্বারা তৈরি SDK সেট আপ করতে Firebase CLI ব্যবহার করুন। init কমান্ডটি বর্তমান ফোল্ডারের সমস্ত অ্যাপ সনাক্ত করবে এবং তৈরি করা SDK-গুলি স্বয়ংক্রিয়ভাবে ইনস্টল করবে।
firebase init dataconnect:sdk
আপনার অ্যাপটিকে SQL Connect পরিষেবার সাথে সংযুক্ত করুন।
import { connectDataConnectEmulator } from 'firebase/data-connect';
import { connectorConfig } from '@dataconnect/generated';
const dataConnect = getDataConnect(connectorConfig);
// [Optionally] Configure the SDK to use Data Connect local emulator.
connectDataConnectEmulator(dataConnect, 'localhost', 9399);
প্রোটোটাইপিং করার সময় SDK আপডেট করুন।
আপনার যদি SQL Connect VS Code এক্সটেনশনটি ইনস্টল করা থাকে, তাহলে এটি তৈরি করা SDK-গুলোকে সর্বদা হালনাগাদ রাখবে।
আপনি যদি SQL Connect VS Code এক্সটেনশন ব্যবহার না করেন, তাহলে তৈরি করা SDK-গুলো হালনাগাদ রাখতে Firebase CLI ব্যবহার করতে পারেন।
firebase dataconnect:sdk:generate --watchবিল্ড পাইপলাইনে SDK তৈরি করুন
আপনি CI/CD বিল্ড প্রসেসে SQL Connect SDK তৈরি করতে Firebase CLI ব্যবহার করতে পারেন।
firebase dataconnect:sdk:generateলাইব্রেরি আমদানি করুন
আপনার ক্লায়েন্ট কোড চালু করার জন্য দুই ধরনের ইম্পোর্ট প্রয়োজন: সাধারণ SQL Connect ইম্পোর্ট এবং নির্দিষ্ট, জেনারেটেড SDK ইম্পোর্ট।
সাধারণ ইম্পোর্টগুলোর অন্তর্ভুক্ত ConnectorConfig অবজেক্টটি লক্ষ্য করুন।
// general imports
import { ConnectorConfig, DataConnect, getDataConnect, QueryRef, MutationRef, QueryPromise, MutationPromise } from 'firebase/data-connect';
// generated queries and mutations from SDK
import { listMovies, ListMoviesResponse, createMovie, connectorConfig } from '@dataconnect/generated';
জাভাস্ক্রিপ্ট এসডিকে থেকে কোয়েরি ব্যবহার করুন
জেনারেট করা কোডটিতে আগে থেকেই পূর্বনির্ধারিত কোয়েরি রেফ (Query Refs) থাকবে। আপনাকে শুধু সেগুলো ইম্পোর্ট করে এক্সিকিউট (execute) কল করতে হবে।
import { executeQuery } from 'firebase/data-connect';
import { listMoviesRef } from '@dataconnect/generated';
const ref = listMoviesRef();
const { data } = await executeQuery(ref);
console.log(data.movies);
SDK কোয়েরি পদ্ধতি কল করুন
এই অ্যাকশন শর্টকাট ফাংশনগুলো ব্যবহার করে একটি উদাহরণ নিচে দেওয়া হলো:
import { listMovies } from '@dataconnect/generated';
function onBtnClick() {
// This will call the generated JS from the CLI and then make an HTTP request out
// to the server.
listMovies().then(data => showInUI(data)); // == executeQuery(listMoviesRef);
}
পরিবর্তনগুলি সাবস্ক্রাইব করুন
আপনি পরিবর্তনগুলির জন্য সাবস্ক্রাইব করতে পারেন (যা আপনার প্রতিটি কোয়েরি চালানোর সাথে সাথে আপডেট হবে)।
const listRef = listAllMoviesRef();
// subscribe will immediately invoke the query if no execute was called on it previously.
subscribe(listRef, ({ data }) => {
updateUIWithMovies(data.movies);
});
await createMovie({ title: 'Empire Strikes Back', releaseYear: 1980, genre: "Sci-Fi", rating: 5 });\
await listMovies(); // will update the subscription above`
গণনা ক্ষেত্রগুলির পরিবর্তনগুলি পরিচালনা করুন
একটি অ্যাপের স্কিমাতে এনুমারেশন থাকতে পারে, যেগুলো আপনার GraphQL কোয়েরি দ্বারা অ্যাক্সেস করা যায়।
অ্যাপের ডিজাইন পরিবর্তনের সাথে সাথে, আপনি enum-সমর্থিত নতুন ভ্যালু যোগ করতে পারেন। উদাহরণস্বরূপ, কল্পনা করুন যে আপনার অ্যাপ্লিকেশনের লাইফসাইকেলের পরবর্তী পর্যায়ে আপনি AspectRatio enum-এ একটি FULLSCREEN ভ্যালু যোগ করার সিদ্ধান্ত নিয়েছেন।
SQL Connect ওয়ার্কফ্লোতে, আপনি আপনার কোয়েরি এবং SDK আপডেট করার জন্য স্থানীয় ডেভেলপমেন্ট টুলিং ব্যবহার করতে পারেন।
তবে, আপনার ক্লায়েন্টদের একটি আপডেট করা সংস্করণ প্রকাশ করার আগে, পুরোনো ক্লায়েন্টগুলো অকার্যকর হয়ে যেতে পারে।
স্থিতিস্থাপক বাস্তবায়নের উদাহরণ
enum ভ্যালুগুলোর ওপর ব্যবহৃত switch স্টেটমেন্টে সবসময় একটি default ব্রাঞ্চ যোগ করুন, অথবা enum ভ্যালুগুলোর সাথে তুলনা করার জন্য if/else if ব্লকে একটি else ব্রাঞ্চ যোগ করুন। JavaScript/TypeScript ল্যাঙ্গুয়েজ এটি বাধ্যতামূলক করে না, কিন্তু নতুন enum ভ্যালু যোগ করা হলে ক্লায়েন্ট কোডকে সুরক্ষিত রাখার এটিই উপায়।
const queryResult = await getOldestMovie();
if (queryResult.data) {
// we can use a switch statement's "default" case to check for unexpected values
const oldestMovieAspectRatio = queryResult.data.originalAspectRatio;
switch (oldestMovieAspectRatio) {
case AspectRatio.ACADEMY:
case AspectRatio.WIDESCREEN:
case AspectRatio.ANAMORPHIC:
console.log('This movie was filmed in Academy, widescreen or anamorphic aspect ratio!');
break;
default:
// the default case will catch FULLSCREEN, UNAVAILABLE or _UNKNOWN
// it will also catch unexpected values the SDK isn't aware of, such as CINEMASCOPE
console.log('This movie was was NOT filmed in Academy, widescreen or anamorphic.');
break;
}
// alternatively, we can check to see if the returned enum value is a known value
if (!Object.values(AspectRatio).includes(oldestMovieAspectRatio)) {
console.log(`Unrecognized aspect ratio: ${oldestAspectRatio}`);
}
} else {
console.log("no movies found!");
}
জাভাস্ক্রিপ্ট এসডিকে থেকে মিউটেশন ব্যবহার করুন
কোয়েরির মতোই মিউটেশনগুলো অ্যাক্সেস করা যায়।
import { executeMutation } from 'firebase/data-connect';
import { createMovieRef } from '@dataconnect/generated';
const { data } = await executeMutation(createMovieRef({ movie: 'Empire Strikes Back' }));
SQL Connect এমুলেটরের সাথে সংযোগ করুন
ঐচ্ছিকভাবে, আপনি connectDataConnectEmulator কল করে এবং তারপর SQL Connect ইনস্ট্যান্সটি পাস করে এমুলেটরের সাথে সংযোগ করতে পারেন, যেমনটি নিচে দেখানো হয়েছে:
import { connectDataConnectEmulator } from 'firebase/data-connect';
import { connectorConfig } from '@dataconnect/generated';
const dataConnect = getDataConnect(connectorConfig);
connectDataConnectEmulator(dataConnect, 'localhost', 9399);`
// Make calls from your app
প্রোডাকশন রিসোর্সে স্যুইচ করতে, এমুলেটরের সাথে সংযোগ করার লাইনগুলো কমেন্ট আউট করুন।
React এবং Angular-এর জন্য ক্লায়েন্ট কোড বাস্তবায়ন করুন
Firebase SQL Connect একটি জেনারেটেড SDK প্রদান করে, যাতে আমাদের পার্টনার Invertase, TanStack Query Firebase থেকে প্রাপ্ত লাইব্রেরি ব্যবহার করে React এবং Angular-এর জন্য হুকস অন্তর্ভুক্ত রয়েছে।
এই লাইব্রেরিটি এমন কিছু হুক প্রদান করে, যা আপনার অ্যাপ্লিকেশনগুলিতে ফায়ারবেসের সাহায্যে অ্যাসিঙ্ক্রোনাস টাস্ক পরিচালনাকে ব্যাপকভাবে সহজ করে তোলে।
আপনার অ্যাপটি চালু করুন
প্রথমে, যেকোনো Firebase ওয়েব অ্যাপের মতোই, স্ট্যান্ডার্ড Firebase সিকোয়েন্স ব্যবহার করে আপনার অ্যাপটি ইনিশিয়ালাইজ করুন।
initializeApp({...});
TanStack Query Firebase প্যাকেজগুলি ইনস্টল করুন
আপনার প্রোজেক্টে TanStack Query-এর জন্য প্যাকেজগুলো ইনস্টল করুন।
প্রতিক্রিয়া
npm i --save @tanstack/react-query @tanstack-query-firebase/react
npm i --save firebase@latest # Note: React has a peer dependency on ^11.3.0
কৌণিক
ng add @angular/fire
আপনার React বা Angular SDK তৈরি করুন
পূর্বে বর্ণিত স্ট্যান্ডার্ড ওয়েব SDK-এর মতোই, Firebase টুলিং আপনার স্কিমা এবং অপারেশনের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে SDK তৈরি করে।
আপনি যদি আপনার প্রজেক্টে এইমাত্র React বা Angular যোগ করে থাকেন, তাহলে অতিরিক্ত ফ্রেমওয়ার্ক বাইন্ডিংগুলো অন্তর্ভুক্ত করার জন্য তৈরি হওয়া SDK-গুলোকে পুনরায় কনফিগার করতে firebase init dataconnect:sdk আবার চালান।
লাইব্রেরি আমদানি করুন
আপনার React বা Angular ক্লায়েন্ট কোড ইনিশিয়ালাইজ করার জন্য চার ধরনের ইম্পোর্ট প্রয়োজন: সাধারণ SQL Connect ইম্পোর্ট, সাধারণ TanStack ইম্পোর্ট, এবং আপনার JS ও React দ্বারা তৈরি SDK-গুলোর জন্য নির্দিষ্ট ইম্পোর্ট।
সাধারণ ইম্পোর্টগুলোর মধ্যে অন্তর্ভুক্ত ConnectorConfig টাইপটি লক্ষ্য করুন।
প্রতিক্রিয়া
// general imports
import { ConnectorConfig, DataConnect, getDataConnect, QueryRef, MutationRef, QueryPromise, MutationPromise } from 'firebase/data-connect';
// TanStack Query-related functions
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
// generated queries and mutations from SDK
import { ListMoviesResponse, connectorConfig } from '@dataconnect/generated';
// generated React hooks from SDK
import { useListAllMovies, useCreateMovie } from "@dataconnect/generated/react";
কৌণিক
// general imports
import { ConnectorConfig, DataConnect, getDataConnect, QueryRef, MutationRef, QueryPromise, MutationPromise } from 'firebase/data-connect';
// TanStack Query-related functions
import { provideTanStackQuery, QueryClient } from "@tanstack/angular-query-experimental";
// generated queries and mutations from SDK
import { ListMoviesResponse, connectorConfig } from '@dataconnect/generated';
// generated React hooks from SDK
import { injectListAllMovies, injectCreateMovie } from "@dataconnect/generated/angular";
আপনার React বা Angular ক্লায়েন্টে কোয়েরি এবং মিউটেশন ব্যবহার করুন
সেটআপ সম্পন্ন হলে, আপনি তৈরি করা SDK থেকে পদ্ধতিগুলো অন্তর্ভুক্ত করতে পারবেন।
নিচের কোড স্নিপেটটিতে, জেনারেটেড SDK থেকে প্রাপ্ত React-এর জন্য use -prefixed মেথড useListAllMovies এবং Angular-এর জন্য inject -prefixed মেথড injectListAllMovies লক্ষ্য করুন।
প্রতিক্রিয়া
জেনারেট করা SDK-তে থাকা এই ধরনের সমস্ত অপারেশন, কোয়েরি এবং মিউটেশন উভয়ই, TanStackQuery বাইন্ডিংগুলোকে কল করে:
- কোয়েরিগুলো TanStack-এর
useDataConnectQueryহুককে কল করে এবং রিটার্ন করে। - মিউটেশনগুলো TanStack-এর
useDataConnectMutationহুককে কল করে এবং রিটার্ন করে।
import { useListAllMovies } from '@dataconnect/generated/react';
function MyComponent() {
const { isLoading, data, error } = useListAllMovies();
if(isLoading) {
return <div>Loading...</div>
}
if(error) {
return <div> An Error Occurred: {error} </div>
}
}
// App.tsx
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import MyComponent from './my-component';
function App() {
const queryClient = new QueryClient();
return <QueryClientProvider client={queryClient}>
<MyComponent />
</QueryClientProvider>
}
কৌণিক
import { injectAllMovies, connectorConfig } from '@dataconnect/generated/angular';
import { provideDataConnect, getDataConnect } from '@angular/fire/data-connect';
import { provideTanStackQuery, QueryClient } from "@tanstack/angular-query-experimental";
const queryClient = new QueryClient();
...
providers: [
...
provideTanStackQuery(queryClient),
provideDataConnect(() => {
const dc = getDataConnect(connectorConfig);
return dc;
})
]
React এবং Angular-এর সাথে অটো রিলোড কোয়েরি ব্যবহার করুন
ডেটা পরিবর্তিত হলে কোয়েরিগুলো স্বয়ংক্রিয়ভাবে রিলোড করার জন্য আপনি কনফিগার করতে পারেন।
প্রতিক্রিয়া
export class MovieListComponent {
movies = useListAllMovies();
}
export class AddPostComponent {
const mutation = useCreateMovie({ invalidate: [listAllMoviesRef()] });
addMovie() {
// The following will automatically cause Tanstack to reload its listAllMovies query
mutation.mutate({ title: 'The Matrix });
}
}
কৌণিক
// class
export class MovieListComponent {
movies = injectListAllMovies();
}
// template
@if (movies.isPending()) {
Loading...
}
@if (movies.error()) {
An error has occurred: {{ movies.error() }}
}
@if (movies.data(); as data) {
@for (movie of data.movies; track movie.id) {
<mat-card appearance="outlined">
<mat-card-content>{{movie.description}}</mat-card-content>
</mat-card>
} @empty {
<h2>No items!</h2>
}
}
SQL Connect এমুলেটরের সাথে সংযোগ করুন
ঐচ্ছিকভাবে, আপনি connectDataConnectEmulator কল করে এবং তারপর আপনার তৈরি করা হুকে SQL Connect ইনস্ট্যান্সটি পাস করে এমুলেটরের সাথে সংযোগ করতে পারেন, যেমনটি নিচে দেখানো হয়েছে:
প্রতিক্রিয়া
import { getDataConnect, connectDataConnectEmulator } from 'firebase/data-connect';
import { connectorConfig } from '@dataconnect/generated';
import { useListAllMovies } from '@dataconnect/generated/react';
const dc = getDataConnect(connectorConfig);
connectDataConnectEmulator(dc, 'localhost', 9399);
class AppComponent() {
...
const { isLoading, data, error } = useListAllMovies(dc);
...
}
কৌণিক
// app.config.ts
import { provideDataConnect } from '@angular/fire/data-connect';
import { getDataConnect, connectDataConnectEmulator } from 'firebase/data-connect';
provideDataConnect(() => {
const dc = getDataConnect(connectorConfig);
connectDataConnectEmulator(dc, 'localhost', 9399);
return dc;
}),
প্রোডাকশন রিসোর্সে স্যুইচ করতে, এমুলেটরের সাথে সংযোগ করার লাইনগুলো কমেন্ট আউট করুন।
ক্লায়েন্ট-সাইড ক্যাশিং সক্রিয় করুন
SQL Connect একটি ঐচ্ছিক ক্লায়েন্ট-সাইড ক্যাশিং বৈশিষ্ট্য রয়েছে, যা আপনি connector.yaml ফাইলটি সম্পাদনা করে সক্রিয় করতে পারেন। যখন এই বৈশিষ্ট্যটি সক্রিয় করা হয়, তখন তৈরি হওয়া ক্লায়েন্ট SDK-গুলো স্থানীয়ভাবে কোয়েরির প্রতিক্রিয়া ক্যাশ করে রাখে, যা আপনার অ্যাপের ডাটাবেস অনুরোধের সংখ্যা কমাতে পারে এবং নেটওয়ার্কের সংযোগ বিচ্ছিন্ন হলেও আপনার অ্যাপের ডাটাবেস-নির্ভর অংশগুলোকে কাজ করতে সক্ষম করে।
ক্লায়েন্ট-সাইড ক্যাশিং সক্রিয় করতে, আপনার কানেক্টর কনফিগারেশনে একটি ক্লায়েন্ট ক্যাশিং কনফিগারেশন যোগ করুন:
generate:
javascriptSdk:
outputDir: ../web/
package: "@dataconnect/generated"
clientCache:
maxAge: 5s
storage: memory
এই কনফিগারেশনটির দুটি প্যারামিটার রয়েছে, উভয়ই ঐচ্ছিক:
maxAge: ক্লায়েন্ট SDK নতুন মান আনার আগে একটি ক্যাশ করা প্রতিক্রিয়ার সর্বোচ্চ বয়স। উদাহরণ: "0", "30s", "1h30m"।maxAgeএর ডিফল্ট মান হলো0, যার অর্থ হলো রেসপন্সগুলো ক্যাশ করা থাকে, কিন্তু ক্লায়েন্ট SDK সর্বদা নতুন ভ্যালু ফেচ করবে। ক্যাশ করা ভ্যালুগুলো শুধুমাত্র তখনই ব্যবহৃত হবে যখনexecuteQuery()তেCACHE_ONLYনির্দিষ্ট করা থাকে এবংsubscribe()থেকে প্রাথমিক ফলাফলটি ফেরত আসে।storage: ক্লায়েন্ট SDK-কে রেসপন্সগুলোpersistentস্টোরেজ অথবাmemoryক্যাশ করার জন্য কনফিগার করা যেতে পারে।persistentস্টোরেজে ক্যাশ করা ফলাফল অ্যাপ রিস্টার্টের পরেও অক্ষুণ্ণ থাকবে। ওয়েব SDK-গুলোতে শুধুমাত্রmemoryস্টোরেজ সমর্থিত।
আপনার কানেক্টরের ক্যাশিং কনফিগারেশন আপডেট করার পর, আপনার ক্লায়েন্ট SDK-গুলো পুনরায় তৈরি করুন এবং আপনার অ্যাপটি রি-বিল্ড করুন। এটি করার পরে, executeQuery() এবং subscribe() ফাংশনগুলো রেসপন্স ক্যাশ করবে এবং আপনার কনফিগার করা পলিসি অনুযায়ী ক্যাশ করা ভ্যালুগুলো ব্যবহার করবে। এটি সাধারণত আপনার কোনো অতিরিক্ত পদক্ষেপ ছাড়াই স্বয়ংক্রিয়ভাবে ঘটে; তবে, নিম্নলিখিত বিষয়গুলো লক্ষ্য করুন:
executeQuery()এর ডিফল্ট আচরণ উপরে বর্ণিত হয়েছে: যদি কোনো কোয়েরির জন্য একটি ফলাফল ক্যাশ করা থাকে এবং ক্যাশ করা মানটিmaxAgeচেয়ে পুরোনো না হয়, তাহলে সেই ক্যাশ করা মানটিই ব্যবহার করা হয়। এই ডিফল্ট আচরণকেPREFER_CACHEপলিসি বলা হয়।আপনি
executeQuery()এর প্রতিটি আহ্বানে নির্দিষ্ট করে দিতে পারেন যে, এটি শুধুমাত্র ক্যাশ করা মান পরিবেশন করবে (CACHE_ONLY) অথবা শর্তহীনভাবে সার্ভার থেকে নতুন মান নিয়ে আসবে (SERVER_ONLY)।await executeQuery(queryRef, QueryFetchPolicy.CACHE_ONLY);await executeQuery(queryRef, QueryFetchPolicy.SERVER_ONLY);যখন আপনি
subscribe()কল করেন, তখনmaxAgeসেটিং নির্বিশেষে, ক্যাশ করা কন্টেন্ট বিদ্যমান থাকলে তা সর্বদা তাৎক্ষণিকভাবে ফেরত দেবে।executeQuery()এর পরবর্তী কলগুলো কনফিগার করাmaxAgeঅনুযায়ী লিসেনারদের অবহিত করবে।
SDK-তে ডেটা টাইপ
SQL Connect সার্ভারটি প্রচলিত GraphQL ডেটা টাইপগুলো উপস্থাপন করে। SDK-তে এগুলো নিম্নরূপে প্রদর্শিত হয়।
| SQL Connect ধরণ | টাইপস্ক্রিপ্ট |
|---|---|
| টাইমস্ট্যাম্প | স্ট্রিং |
| তারিখ | স্ট্রিং |
| UUID | স্ট্রিং |
| Int64 | স্ট্রিং |
| দ্বিগুণ | সংখ্যা |
| ভাসা | সংখ্যা |
প্রোটোটাইপিং করার সময় SDK আপডেট করুন।
আপনার যদি SQL Connect VS Code এক্সটেনশনটি ইনস্টল করা থাকে, তাহলে এটি তৈরি করা SDK-গুলোকে সর্বদা হালনাগাদ রাখবে।
আপনি যদি SQL Connect VS Code এক্সটেনশন ব্যবহার না করেন, তাহলে তৈরি করা SDK-গুলো হালনাগাদ রাখতে Firebase CLI ব্যবহার করতে পারেন।
firebase dataconnect:sdk:generate --watchবিল্ড পাইপলাইনে SDK তৈরি করুন
আপনি CI/CD বিল্ড প্রসেসে SQL Connect SDK তৈরি করতে Firebase CLI ব্যবহার করতে পারেন।
firebase dataconnect:sdk:generate