Firebase Realtime Database-এর অপারেশন সংক্রান্ত ধরন

Firebase Realtime Database প্রোফাইলার কমান্ড

আপনার Realtime Database ইনস্ট্যান্সে অপারেশনের জন্য স্পিড ও ব্যান্ডউইথ ব্যবহারের রিপোর্ট তৈরি করতে, নিম্নলিখিত কমান্ড ব্যবহার করুন:

firebase database:profile
অভিযোগ জানানোর বিকল্প বিবরণ
-h, --help আউটপুট ব্যবহারের তথ্য।
-o, --output FILENAME নির্দিষ্ট ফাইলে আউটপুট সেভ করুন।
-i, --input FILENAME সার্ভার থেকে পাওয়া স্ট্রিম লগ এর পরিবর্তে নির্দিষ্ট ফাইলের উপর ভিত্তি করে রিপোর্ট তৈরি করুন।
-d, --duration SECONDS নির্দিষ্ট সংখ্যক সেকেন্ডের জন্য ডেটাবেস ব্যবহার সংক্রান্ত তথ্য সংগ্রহ করুন।
--raw নতুন-লাইন দ্বারা আলাদা করা JSON হিসেবে সংগ্রহ করা কাঁচা পরিসংখ্যান আউটপুট করুন।

অপারেশনের ধরন

কনকারেন্ট-কানেক্ট

এই অপারেশনটি ডেটাবেসের সাথে রিয়েল-টাইম কানেকশনকে প্রতিফলিত করে (যেমন, যখন কোনও নতুন ক্লায়েন্ট SDK-এর মাধ্যমে কানেক্ট করে)। RESTful কানেকশন কনকারেন্ট-কানেক্ট অপারেশনে প্রতিফলিত হয় না।

{
    "name": "concurrent-connect",
    "timestamp": 1484776334900
}

concurrent-disconnect

কনকারেন্ট-ডিসকানেক্ট এমন কানেকশনকে বোঝায় যা ডেটাবেস থেকে ডিসকানেক্ট হয়ে গেছে (যেমন, কোনও ক্লায়েন্ট ডিসকানেক্ট হয়ে গেলে বা সাইন-অফ করলে)।

{
    "name": "concurrent-disconnect",
    "timestamp": 1484776341844
}

রিয়েলটাইম-রাইট

রিয়েল-টাইম কানেকশন থেকে অনুরোধ লেখা। যেমন, ওয়েব ক্লায়েন্টের জন্য set() এবং push() অপারেশন। মুছে দেওয়ার অনুরোধকেও realtime-write অপারেশন হিসেবে গণ্য করা হয় এবং এটি ০ বাইট লেখা দেখায়।

{
    "allowed": true, // If security rules allow the operation
    "bytes": 1,
    "millis": 2,
    "name": "realtime-write",
    "path": [
        "foo"
    ],
    "timestamp": 1484776538763
}

রিয়েল-টাইম ট্রানজ্যাকশন

এই অপারেশন ধরনের মধ্যে রিয়েল-টাইম কানেকশনের মাধ্যমে করা ট্রানজ্যাকশন অন্তর্ভুক্ত। ট্রানজ্যাকশন সম্পূর্ণ না হওয়া এবং আবার চেষ্টা করার ফলে একই ট্রানজ্যাকশন একাধিকবার হতে পারে।

{
    "allowed": true,
    "bytes": 20,
    "millis": 2,
    "name": "realtime-transaction",
    "path": [
        "foo"
    ],
    "timestamp": 1484776854610
}

realtime-update

আপডেট করার জন্য এইসব রিয়েল-টাইম অপারেশন নির্দিষ্ট ডেটা ওভাররাইট করে, realtime-write-এ আরও সাধারণ রাইট অপারেশন নয়।

{
    "allowed": true,
    "bytes": 5,
    "millis": 2,
    "name": "realtime-update",
    "path": [
        "foo"
    ],
    "timestamp": 1484776538769
}

শ্রোতা-শুনুন

এইসব অপারেশন কোনও ক্লায়েন্টের থেকে নির্দিষ্ট লোকেশনে ডেটা পাওয়ার প্রাথমিক অনুরোধকে প্রতিফলিত করে। যেমন, ওয়েব ক্লায়েন্টের জন্য on() বা once() পদ্ধতি।

{
    "allowed": true,
    "bytes": 0,
    "millis": 26,
    "name": "listener-listen",
    "path": [
        "foo"
    ],
    "querySet": [],
    "timestamp": 1484776335024,
    "unIndexed": false
}

শ্রোতা-ব্রডকাস্ট

এই অপারেশনটি সার্ভার থেকে যেকোনও এবং সমস্ত ক্লায়েন্টকে পাঠানো ডেটা কভার করে যা প্রতিটি লেখা এবং আপডেট অপারেশন অনুসরণ করে একটি নির্দিষ্ট লোকেশনে শুনছে। ডেটা পরিবর্তন করা হলে ব্রডকাস্ট অপারেশন হয়। তবে, কোনও ক্লায়েন্ট না শুনলে আপনি ০টি আপডেট দেখতে পেতে পারেন।

{
    "bytes": 56, // Total bytes sent across clients
    "clientsUpdated": 3, // This may be 0 if no clients are listening
    "millis": 17,
    "name": "listener-broadcast",
    "path": [
        "baz",
        "mar"
    ],
    "timestamp": 1484775969928
}

listener-unlisten

এইসব অপারেশন, বিচ্ছিন্ন করার পদ্ধতি (যেমন, ওয়েবের জন্য off() অথবা iOS-এর জন্য removeAllObservers

{
    "name": "listener-unlisten",
    "path": [
        "foo"
    ],
    "timestamp": 1484776335044
}

বিশ্রাম-পাঠ

REST API-এর মাধ্যমে GET অনুরোধ।

{
    "allowed": true,
    "bytes": 348, // This would be 0 if the read data was null
    "millis": 26,
    "name": "rest-read",
    "path": [],
    "querySet": [
        {
            "default": true,
            "endIndexValue": "[MAX_NAME]",
            "equality": false,
            "index": {},
            "limit": null,
            "range": false,
            "simpleLimit": false,
            "startIndexValue": "[MIN_NAME]",
            "viewFrom": null
        }
    ],
    "timestamp": 1484775747416
}

rest-write

REST API-এর মাধ্যমে PUT এবং POST অনুরোধ। DELETE অনুরোধে rest-write ০ বাইটের অপারেশন দেখানো হয়েছে।

{
    "allowed": true,
    "bytes": 13,
    "millis": 116,
    "name": "rest-write",
    "path": [],
    "timestamp": 1484775917216
}

rest-transaction

ট্রানজ্যাকশনের মতো আচরণের জন্য, শর্তসাপেক্ষ অনুরোধ ব্যবহার করুন। rest-transaction অপারেশন Etag বা if-match হেডার ব্যবহার করে অনুরোধ ক্যাপচার করে।

{
    "allowed": true,
    "bytes": 13,
    "millis": 116,
    "name": "rest-transaction",
    "path": [],
    "timestamp": 1484775917216
}

rest-update

REST API-এর মাধ্যমে করা আপডেট PATCH অনুরোধের প্রতিফলন ঘটায়।

{
    "allowed": true,
    "bytes": 5,
    "millis": 11,
    "name": "rest-update",
    "path": [
        "baz",
        "mar"
    ],
    "timestamp": 1484775969930
}

on-disconnect-put

এইসব অপারেশন onDisconnect শ্রোতাদের যোগ করার বিষয়টি দেখায় অপারেশন লেখার জন্য। যেমন, আপনি যখন onDisconnect().setValue() ব্যবহার করেন।

{
    "allowed": true,
    "bytes": 4,
    "millis": 2,
    "name": "on-disconnect-put",
    "path": [
        "baz",
        "mar"
    ],
    "timestamp": 1484775969930
}

on-disconnect-update

এইসব অপারেশন, আপডেট অপারেশনে onDisconnect শ্রোতাদের যোগ করার বিষয়টি দেখায়। যেমন, আপনি যখন onDisconnect().updateChildren() ব্যবহার করেন।

{
    "allowed": true,
    "bytes": 4,
    "millis": 2,
    "name": "on-disconnect-update",
    "path": [
        "baz",
        "mar"
    ],
    "timestamp": 1484775969930
}

on-disconnect-cancel

এইসব অপারেশন onDisconnect লিসনার সরিয়ে দেওয়ার বিষয়টি প্রতিফলিত করে। যেমন, আপনি যখন onDisconnect().set().cancel() ব্যবহার করেন।

{
    "millis": 2,
    "name": "on-disconnect-cancel",
    "path": [
        "baz",
        "mar"
    ],
    "timestamp": 1484775969930
}

ডিসকানেক্ট হলে চলবে

এইসব অপারেশন onDisconnect লিসনার ট্রিগার করাকে প্রতিফলিত করে। অন্তত একটি onDisconnect লিসনার যোগ করার পরে কোনও রিয়েলটাইম ক্লায়েন্ট ডিসকানেক্ট হয়ে গেলে, প্রোফাইলার একটি run-on-disconnect অপারেশন রেকর্ড করে। এর মাধ্যমে ট্রিগার করা সমস্ত onDisconnect লিসনারের এগ্রিগেট করা বাইট ও সময় দেখানো হয়।

{
    "bytes": 4,
    "millis": 2,
    "name": "run-on-disconnect",
    "timestamp": 1484775969930
}