Firebase బ్లాక్ - మీ చాట్బాట్లో Firestore మరియు Cloud Messaging
Firebase Firestore మరియు Cloud Messagingను మీ ChatMaxima చాట్బాట్కు కనెక్ట్ చేయండి. Studio ఫ్లోల నుండి డాక్యుమెంట్లను చదవండి, కలెక్షన్లను క్వెరీ చేయండి మరియు పుష్ నోటిఫికేషన్లను పంపండి.
అవలోకనం
Firebase బ్లాక్ మీ ChatMaxima చాట్బాట్ను నేరుగా Firebase ప్రాజెక్ట్కు కనెక్ట్ చేస్తుంది. ఇది మీ ఫ్లోకు Cloud Firestoreలో డాక్యుమెంట్లను చదవడానికి మరియు రాయడానికి మరియు మీ మొబైల్ లేదా వెబ్ యాప్ యూజర్లకు FCM పుష్ నోటిఫికేషన్లను పంపడానికి అనుమతిస్తుంది, అన్నీ ఒకే బ్లాక్ నుండి. మీరు కాన్ఫిగర్ చేసే ఏ ఆపరేషన్ అయినా మీరు బ్లాక్ను డ్రాప్ చేసే కన్వర్సేషన్లోని ఖచ్చితమైన పాయింట్ వద్ద నడుస్తుంది, తద్వారా మీ బాట్ Firestore నుండి డేటాను పుల్ చేయవచ్చు, స్థితిని తిరిగి దానిలో నిల్వ చేయవచ్చు, లేదా నిర్దిష్ట కన్వర్సేషన్ స్థితికి ప్రతిస్పందనగా పుష్ నోటిఫికేషన్ను ట్రిగర్ చేయవచ్చు.
సాధారణ వినియోగ సందర్భాలలో మీ స్వంత Firestore కలెక్షన్లలో లీడ్ డేటాను నిల్వ చేయడం, IDతో అథెంటికేటెడ్ యూజర్ ప్రొఫైల్ను చూడటం, మీ యాప్ బ్యాకెండ్ నుండి ఆర్డర్ లేదా బుకింగ్ స్థితిని తనిఖీ చేయడం, మరియు కన్వర్సేషన్ ఒక మైలురాయిని (ఆర్డర్ నిర్ధారించబడింది, అపాయింట్మెంట్ బుక్ చేయబడింది, సపోర్ట్ టికెట్ పరిష్కరించబడింది) చేరుకున్నప్పుడు యూజర్ పరికరాలకు నోటిఫికేషన్లను పుష్ చేయడం ఉన్నాయి. బ్లాక్ అథెంటికేషన్, టోకెన్ క్యాషింగ్ మరియు లోప రూటింగ్ను ఆటోమేటిక్గా నిర్వహిస్తుంది, కాబట్టి మీరు కేవలం ఒక ఆపరేషన్ను ఎంచుకుని దాని కోసం ముఖ్యమైన ఫీల్డ్లను పూరించాలి.
ముందస్తు అవసరాలు
మీరు ఫ్లోకు Firebase బ్లాక్ను జోడించడానికి ముందు, మీకు ఉన్నాయని నిర్ధారించుకోండి:
- Cloud Firestore ప్రారంభించబడిన ఒక Firebase ప్రాజెక్ట్. ఈ బ్లాక్లో Realtime Databaseకు మద్దతు లేదు (v1 Firestoreను మాత్రమే కవర్ చేస్తుంది).
- మీ Firebase ప్రాజెక్ట్ నుండి డౌన్లోడ్ చేయబడిన ఒక service account JSON key. Firebase Consoleలో Project Settingsకు వెళ్లి, Service Accounts ట్యాబ్ను తెరిచి, Generate new private keyపై క్లిక్ చేయండి. డౌన్లోడ్ చేయబడిన JSON ఫైల్ను సేవ్ చేయండి. మీరు తదుపరి స్టెప్లో దాని కంటెంట్లను ChatMaximaలో అతికిస్తారు.
- మీరు పుష్ నోటిఫికేషన్లను పంపాలని ప్లాన్ చేస్తే మీ క్లయింట్ యాప్లో FCM సెటప్ చేయబడింది. ప్రతి పరికరం Firebaseతో నమోదు చేయబడి దాని FCM registration token బాట్ ఫెచ్ చేయగల చోట (సాధారణంగా Firestore
users/{user_id}.tokensఅర్రే) నిల్వ చేయబడాలి.
గమనిక: service account key ఒక దీర్ఘకాలిక సీక్రెట్. మీరు production డేటాబేస్ పాస్వర్డ్ను చూసే విధంగానే దాన్ని చూడండి. దాన్ని సోర్స్ కంట్రోల్కు కమిట్ చేయకండి లేదా చాట్లో షేర్ చేయకండి.
స్టెప్ 1: Firebaseను ఇంటిగ్రేషన్గా కనెక్ట్ చేయండి
- Dashboard → Integrationsకు వెళ్లి Add Integrationపై క్లిక్ చేయండి
- ప్లాట్ఫారమ్ డ్రాప్డౌన్ నుండి Firebaseను ఎంచుకోండి
- తర్వాత మీరు దాన్ని గుర్తించగలిగేలా ఒక పేరును (ఉదాహరణకు
Production FirebaseలేదాMy App Firestore) నమోదు చేయండి - service account JSON ఫైల్యొక్క పూర్తి కంటెంట్లను Service Account JSON ఫీల్డ్లో అతికించండి
- Verify & Saveపై క్లిక్ చేయండి
ChatMaxima private keyతో JWTను సంతకం చేయడం ద్వారా, దాన్ని OAuth యాక్సెస్ టోకెన్ కోసం మార్చడం ద్వారా, మరియు Firestoreయొక్క listCollectionIds ఎండ్పాయింట్కు టెస్ట్ కాల్ చేయడం ద్వారా క్రెడెన్షియల్ను ధృవీకరిస్తుంది. ప్రాజెక్ట్లో Firestore ప్రారంభించబడి service accountకు యాక్సెస్ ఉంటే, మీరు Firebase integration connected చూస్తారు. ఇంటిగ్రేషన్ ఇప్పుడు మీ టీమ్లోని ప్రతి బాట్కు అందుబాటులో ఉంది.
గమనిక: యాక్సెస్ టోకెన్ ChatMaxima లోపల క్యాష్ చేయబడుతుంది మరియు అది గడువు ముగియకముందే ఆటోమేటిక్గా రిఫ్రెష్ చేయబడుతుంది. మీరు వేరే Firebase ప్రాజెక్ట్కు మారాలనుకుంటే తప్ప service account JSONను రొటేట్ చేయడం లేదా మళ్లీ నమోదు చేయడం అవసరం లేదు.
స్టెప్ 2: ఫ్లోకు Firebase బ్లాక్ను జోడించండి
- Studioలో మీ చాట్బాట్ను తెరవండి
- క్యాన్వాస్పై రైట్-క్లిక్ చేయండి (లేదా ఎడమ సైడ్బార్ నుండి డ్రాగ్ చేయండి) మరియు External Integrations కింద Firebaseను ఎంచుకోండి
- దాని కాన్ఫిగరేషన్ను తెరవడానికి బ్లాక్ను డబుల్-క్లిక్ చేయండి
- Select Integration డ్రాప్డౌన్ నుండి స్టెప్ 1లో మీరు సృష్టించిన ఇంటిగ్రేషన్ను ఎంచుకోండి
- ఒక ఆపరేషన్ను ఎంచుకుని కింద వివరించిన ఫీల్డ్లను పూరించండి
అందుబాటులో ఉన్న ఆపరేషన్లు
Firebase బ్లాక్ ఏడు ఆపరేషన్లకు మద్దతు ఇస్తుంది. మొదటి ఆరు Cloud Firestoreతో పనిచేస్తాయి. ఏడవది Cloud Messaging (FCM) పుష్ నోటిఫికేషన్ను పంపుతుంది.
| ఆపరేషన్ | కేటగిరీ | ఇది ఏమి చేస్తుంది |
|---|---|---|
| Get Document | Firestore | కలెక్షన్ మరియు డాక్యుమెంట్ ID ద్వారా ఒకే డాక్యుమెంట్ను చదువుతుంది |
| Add Document | Firestore | కొత్త డాక్యుమెంట్ను సృష్టిస్తుంది. మీరు దాన్ని ఖాళీగా వదిలేస్తే Firestore IDని ఆటోమేటిక్గా రూపొందిస్తుంది |
| Set Document | Firestore | నిర్దిష్ట ID వద్ద డాక్యుమెంట్ను ఓవర్రైట్ చేస్తుంది. అన్ని ఫీల్డ్లను భర్తీ చేస్తుంది |
| Update Document | Firestore | మీరు అందించే ఫీల్డ్లను మాత్రమే ఇప్పటికే ఉన్న డాక్యుమెంట్లోకి మెర్జ్ చేస్తుంది |
| Delete Document | Firestore | నిర్దిష్ట ID వద్ద డాక్యుమెంట్ను తీసివేస్తుంది |
| Query Collection | Firestore | డాక్యుమెంట్ల కలెక్షన్ను ఫిల్టర్ చేస్తుంది, ఆర్డర్ చేస్తుంది మరియు పరిమితం చేస్తుంది |
| Send Notification | Cloud Messaging | ఒక పరికరం, అనేక పరికరాలు, లేదా ఒక topicకు నోటిఫికేషన్ను పుష్ చేస్తుంది |
ప్రతి ఇన్పుట్ (collection, document ID, field values, FCM token, notification title మరియు body) {variable} సింటాక్స్తో ChatMaxima వేరియబుల్స్కు మద్దతు ఇస్తుంది, తద్వారా మీరు వాటిని మునుపటి ప్రశ్న బ్లాక్లు, మునుపటి API కాల్లు, లేదా Webhook బ్లాక్లో స్వీకరించిన డేటా నుండి పూరించవచ్చు.
ఆపరేషన్ కాన్ఫిగరేషన్
Get Document
ID ద్వారా ఒక డాక్యుమెంట్ను చదువుతుంది. యూజర్ ప్రొఫైల్ను చూడటానికి, ఆర్డర్యొక్క ప్రస్తుత స్థితిని ఫెచ్ చేయడానికి, లేదా మీకు ఇప్పటికే ID ఉన్న ఏదైనా రికార్డ్ను పుల్ చేయడానికి దీన్ని ఉపయోగించండి.
| ఫీల్డ్ | వివరణ |
|---|---|
| Collection | Firestore కలెక్షన్ పేరు (ఉదాహరణకు, users, orders). గుర్తించబడిన జాబితా నుండి ఎంచుకోండి లేదా కొత్తదాన్ని టైప్ చేయండి |
| Document ID | చదవాల్సిన ID. {user_id} వంటి వేరియబుల్స్కు మద్దతు ఇస్తుంది |
| Store the response in variable | ఫలితాన్ని కలిగి ఉండే ChatMaxima వేరియబుల్ పేరు |
Add Document
కలెక్షన్లో కొత్త డాక్యుమెంట్ను సృష్టిస్తుంది. Firestore ఆటో-జెనరేట్ చేయడానికి Document IDను ఖాళీగా వదిలేయండి, లేదా మీ స్వంతదాన్ని అందించండి (ఉదాహరణకు, {lead_id}).
| ఫీల్డ్ | వివరణ |
|---|---|
| Collection | లక్ష్య కలెక్షన్ |
| Document ID (optional) | ఆటో ID కోసం ఖాళీగా వదిలేయండి, లేదా కస్టమ్ ఒకదాన్ని అందించండి |
| Field Mapping | Key/value రోలు. Keyలు Firestore ఫీల్డ్ పేర్లు, valuesలు literals లేదా {variable} రిఫరెన్స్లు కావచ్చు |
| Store the response in variable | సేవ్ చేయబడిన డాక్యుమెంట్ (దాని రూపొందించబడిన IDతో) ఇక్కడ నిల్వ చేయబడుతుంది |
Set Document
collection/document_id వద్ద డాక్యుమెంట్ను మీరు జాబితా చేసే ఫీల్డ్లతో ఖచ్చితంగా ఓవర్రైట్ చేస్తుంది. డాక్యుమెంట్పై గతంలో ఉన్న కానీ మీ మ్యాపింగ్లో లేని ఏ ఫీల్డ్లు తీసివేయబడతాయి. మెర్జ్ కంటే శుభ్రమైన భర్తీ కావాలనుకున్నప్పుడు దీన్ని ఉపయోగించండి.
Update Document
మీరు అందించే ఫీల్డ్లను మాత్రమే ఇప్పటికే ఉన్న డాక్యుమెంట్లోకి మెర్జ్ చేస్తుంది. మీ మ్యాపింగ్లో లేని ఫీల్డ్లు తాకబడవు. యూజర్ ప్రొఫైల్ లేదా ఆర్డర్ రికార్డ్ను క్రమంగా అప్డేట్ చేయడానికి ఇది అత్యంత సురక్షితమైన రైట్ ఆపరేషన్.
Delete Document
collection/document_id వద్ద డాక్యుమెంట్ను తీసివేస్తుంది. delete విజయవంతమైతే ప్రతిస్పందన వేరియబుల్ {"success": true}ను కలిగి ఉంటుంది.
Query Collection
కలెక్షన్కు వ్యతిరేకంగా Firestore structured queryను నడుపుతుంది. ఫిల్టర్లు, ఆర్డరింగ్ మరియు రో పరిమితికి మద్దతు ఇస్తుంది.
| ఫీల్డ్ | వివరణ |
|---|---|
| Collection | క్వెరీ చేయాల్సిన కలెక్షన్ |
| Query Filters | field, operator, value రోలు. ANDతో కలపబడతాయి |
| Order By Field | సార్ట్ చేయడానికి ఐచ్ఛిక ఫీల్డ్ పేరు |
| Order Direction | ఆరోహణ లేదా అవరోహణ |
| Limit | తిరిగి ఇవ్వాల్సిన గరిష్ట డాక్యుమెంట్ల సంఖ్య. పరిమితి లేకుండా ఖాళీగా వదిలేయండి |
మద్దతిచ్చే ఫిల్టర్ ఆపరేటర్లు:
| ఆపరేటర్ | అర్థం |
|---|---|
EQUAL | Field value కు సమానం |
NOT_EQUAL | Field value కు సమానం కాదు |
LESS_THAN | Field value కంటే తక్కువ |
LESS_THAN_OR_EQUAL | Field value కంటే తక్కువ లేదా సమానం |
GREATER_THAN | Field value కంటే ఎక్కువ |
GREATER_THAN_OR_EQUAL | Field value కంటే ఎక్కువ లేదా సమానం |
ARRAY_CONTAINS | Field value ను కలిగి ఉన్న అర్రే |
IN | Field value జాబితా చేయబడిన విలువల్లో ఒకటి |
ARRAY_CONTAINS_ANY | Field అర్రే జాబితా చేయబడిన విలువల్లో ఏదైనా కలిగి ఉంది |
NOT_IN | Field value జాబితా చేయబడిన విలువల్లో ఏదీ కాదు |
Send Notification
FCM పుష్ నోటిఫికేషన్ను పంపుతుంది. మూడు లక్ష్యాల్లో ఒకదాన్ని ఎంచుకోండి:
| Send To | ఎప్పుడు ఉపయోగించాలి |
|---|---|
| A Single Device | ఒక నిర్దిష్ట FCM registration token |
| Multiple Devices | ఒకే స్టెప్లో అనేక tokensకు మల్టీకాస్ట్. JSON అర్రే, కామా-సెపరేటెడ్ స్ట్రింగ్, లేదా నేటివ్ అర్రేకు పరిష్కరించే వేరియబుల్ను అంగీకరిస్తుంది |
| A Topic | ఒక topicకు సబ్స్క్రైబ్ అయిన ప్రతి పరికరానికి బ్రాడ్కాస్ట్ (ఉదాహరణకు, premium-users) |
కాన్ఫిగరేషన్ ఫీల్డ్లు:
| ఫీల్డ్ | వివరణ |
|---|---|
| FCM Token / Tokens / Topic | లక్ష్య రకంపై ఆధారపడి గ్రహీత. వేరియబుల్స్కు మద్దతు |
| Notification Title | పుష్ నోటిఫికేషన్లో చూపబడే బోల్డ్ హెడ్లైన్ |
| Notification Body | టైటిల్ కింద చూపబడే సందేశ టెక్స్ట్ |
| Data Payload | నోటిఫికేషన్తో పాటు నిశ్శబ్దంగా డెలివర్ చేయబడే ఐచ్ఛిక key/value జతలు. డీప్ లింకింగ్కు ఉపయోగకరం (ఉదాహరణకు, screen=orders, order_id={order_id}). FCM నియమాల ప్రకారం విలువలు పంపడానికి ముందు stringify చేయబడతాయి |
ప్రతిస్పందన వేరియబుల్ ఫార్మాట్
ప్రతి ఆపరేషన్ Store the response in variable కింద మీరు పేరు పెట్టిన వేరియబుల్లో JSON ఫలితాన్ని నిల్వ చేస్తుంది. తదుపరి బ్లాక్లు డాట్ నొటేషన్ను ఉపయోగించి ఫీల్డ్లను సూచించవచ్చు, ఉదాహరణకు {user_data.data.email}.
Firestore reads (Get Document)
{
"id": "user_42",
"name": "projects/my-project/databases/(default)/documents/users/user_42",
"data": {
"name": "Priya",
"email": "priya@example.com",
"tokens": ["iphone_tok", "ipad_tok"]
},
"create_time": "2026-04-20T10:30:00Z",
"update_time": "2026-04-21T14:15:00Z"
}
Firestore writes (Add / Set / Update)
Get Document వలె అదే ఆకారం. id ఫీల్డ్ చివరి డాక్యుమెంట్ IDని ప్రతిబింబిస్తుంది (మీరు ఒకదాన్ని అందించకపోతే ఆటో-జెనరేట్ చేయబడుతుంది).
Firestore Delete
{ "success": true }
Query Collection
డాక్యుమెంట్ ఆబ్జెక్ట్ల అర్రే, ప్రతిదానికి పైన ఉన్న ఆకారం:
[
{ "id": "order_1", "data": { "status": "confirmed", "amount": 900 }, "create_time": "..." },
{ "id": "order_2", "data": { "status": "confirmed", "amount": 1200 }, "create_time": "..." }
]
Send Notification (single / topic)
{
"success": true,
"message_name": "projects/my-project/messages/0:17045...",
"target_type": "token",
"target_value": "iphone_tok"
}
Send Notification (multicast)
{
"success": true,
"sent": 2,
"failed": 1,
"invalid_tokens": ["stale_tok"],
"results": [
{ "token": "iphone_tok", "success": true, "message_name": "..." },
{ "token": "ipad_tok", "success": true, "message_name": "..." },
{ "token": "stale_tok", "success": false, "error": "Requested entity was not found.", "error_code": "UNREGISTERED" }
]
}
invalid_tokens అర్రే Firebase stale (UNREGISTERED, INVALID_ARGUMENT, NOT_FOUND)గా ఫ్లాగ్ చేసిన tokensను జాబితా చేస్తుంది. మీరు చనిపోయిన పరికరాలను లక్ష్యంగా చేసుకోవడం ఆపేలా మీ స్వంత Firestore users కలెక్షన్ నుండి వీటిని తీసివేయడానికి Update Documentతో ఫాలో-అప్ Firebase బ్లాక్ను ఉపయోగించండి.
సాధారణ వినియోగ సందర్భాలు
ఆర్డర్ నిర్ధారణ పుష్ నోటిఫికేషన్
కస్టమర్ యాప్లో చెక్అవుట్ను పూర్తి చేస్తారు, మరియు యూజర్ నమోదు చేసిన ప్రతి పరికరానికి నిర్ధారణను పుష్ చేయడానికి బాట్ను మీరు కోరుకుంటారు.
- Question Block:
{user_id}ను క్యాప్చర్ చేయండి లేదా వెరిఫై చేయండి - Firebase Block (Get Document): Collection
users, Document ID{user_id}, ఫలితాన్ని{user_data}లో నిల్వ చేయండి - Condition Block:
{order_status} == "confirmed"పై శాఖలుగా విభజించండి - Firebase Block (Send Notification, Multiple Devices): Tokens
{user_data.data.tokens}, titleOrder confirmed, bodyHi {user_data.data.name}, your order {order_id} is on its way - Message Block:
We have sent a confirmation to your devices
చాట్బాట్ లీడ్లను Firestoreకు రాయండి
మీ స్వంత మొబైల్ యాప్ రియల్ టైమ్లో ప్రతిస్పందించేలా ఇన్బౌండ్ లీడ్లకు Firestoreను సత్య మూలంగా ఉపయోగించండి.
- Question Block:
{name},{email},{phone}అడగండి - Firebase Block (Add Document): Collection
chatbot_leads, fieldsname={name},email={email},phone={phone},source=chatbot - Message Block:
Thanks {name}, we will be in touch shortly
బుకింగ్ లభ్యతను తనిఖీ చేయండి
బుకింగ్ను నిర్ధారించడానికి ముందు, స్లాట్ ఇంకా తెరిచి ఉందని నిర్ధారించడానికి Firestoreను క్వెరీ చేయండి.
- Firebase Block (Query Collection): Collection
bookings, filterslot_id EQUAL {slot_id}మరియుstatus NOT_EQUAL cancelled, limit1,{existing_bookings}లో నిల్వ చేయండి - Condition Block:
{existing_bookings}ఖాళీగా ఉందా అనే దానిపై శాఖలుగా విభజించండి - ఖాళీగా ఉంటే: బుకింగ్ను సృష్టించడానికి Firebase Block (Add Document), ఆపై నిర్ధారించడానికి Message Block
- మ్యాచ్ ఉంటే: Message Block
That slot was just taken, please pick another
ఒక Topicకు బ్రాడ్కాస్ట్
ఒక topicకు సబ్స్క్రైబ్ అయిన ప్రతి పరికరానికి one-to-many ప్రకటనను పంపండి.
- Trigger Block: అడ్మిన్ Campaignతో ఫ్లోను ట్రిగర్ చేస్తారు
- Firebase Block (Send Notification, Topic): Topic
premium-users, titleNew feature released, bodyTap to try it out, datascreen=whats_new
Stale FCM Tokensను శుభ్రం చేయండి
మల్టీకాస్ట్ సెండ్ తర్వాత, భవిష్యత్ పుష్లు లైవ్ పరికరాలకు మాత్రమే వెళ్లేలా యూజర్ ప్రొఫైల్ నుండి చనిపోయిన tokensను తీసివేయండి.
- Firebase Block (Send Notification, Multiple Devices): ఫలితాన్ని
{push_result}లో నిల్వ చేయండి - Condition Block:
{push_result.invalid_tokens}ఖాళీగా లేదా అనే దానిపై శాఖలుగా విభజించండి - Code Block లేదా API Block: ప్రూన్ చేయబడిన token జాబితాను లెక్కించండి
- Firebase Block (Update Document): Collection
users, Document ID{user_id}, fieldtokens={pruned_tokens}
ఉత్తమ పద్ధతులు
- service accountను సరిగ్గా scope చేయండి. ChatMaxima కోసం ఒక డెడికేటెడ్ service accountను సృష్టించి దానికి అవసరమైన Firestore మరియు FCM రోల్లను మాత్రమే ఇవ్వండి. productionకు డిఫాల్ట్ Admin SDK keyను ఉపయోగించకండి
- FCM tokensను అర్రేగా నిల్వ చేయండి. యూజర్లకు తరచుగా అనేక పరికరాలు ఉంటాయి. వాటిని యూజర్కు ఒకే
tokensఫీల్డ్లో ఉంచడం మల్టీకాస్ట్ సెండ్లను సులభం చేస్తుంది - లోప శాఖను నిర్వహించండి. ప్రతి Firebase బ్లాక్కు ఆపరేషన్ విఫలమైనప్పుడు ఫైర్ అయ్యే రెండవ అవుట్పుట్ ఉంది. ఫ్లో నిలిచిపోకుండా దాన్ని రికవరీ సందేశం లేదా రీట్రైకు రూట్ చేయండి
- Stale tokensను ప్రూన్ చేయండి. token చనిపోయినప్పుడు FCM
UNREGISTEREDను తిరిగి ఇస్తుంది. మీ యూజర్ ప్రొఫైల్లను శుభ్రం చేయడానికి మల్టీకాస్ట్ ప్రతిస్పందనలోinvalid_tokensఫీల్డ్ను ఉపయోగించండి - data payload విలువలను చిన్నగా ఉంచండి. FCMకు అన్ని data payload విలువలు స్ట్రింగ్లు మరియు మొత్తం సందేశ పరిమాణం 4 KB కంటే తక్కువగా ఉండాలి. ChatMaxima విలువలను ఆటోమేటిక్గా stringify చేస్తుంది, కానీ పెద్ద JSON blobs Firebase ద్వారా తిరస్కరించబడతాయి
- service account JSONను లీక్ చేయకండి. ChatMaximaలో సేవ్ చేసిన తర్వాత, JSON UIలో తిరిగి బహిర్గతం కాదు. డౌన్లోడ్ చేయబడిన ఫైల్ను ఏ ఇతర production సీక్రెట్ వలె అదే జాగ్రత్తతో చూడండి
తరచుగా అడిగే ప్రశ్నలు
బ్లాక్ ఏ Firebase ఉత్పత్తులకు మద్దతు ఇస్తుంది?
Cloud Firestore (read / write / query) మరియు Cloud Messaging (FCM HTTP v1 API). Realtime Database, Firebase Authentication, Cloud Functions మరియు In-App Messaging ఈ బ్లాక్ ద్వారా నిర్వహించబడవు.
నేను Firestore మరియు FCM రెండింటికీ అదే బ్లాక్ను ఉపయోగించవచ్చా?
అవును. ఒకే Firebase ఇంటిగ్రేషన్ క్రెడెన్షియల్ రెండు ఉత్పత్తులకు అధికారం ఇస్తుంది. మీకు అవసరమైన ప్రతి ఆపరేషన్కు ప్రత్యేక Firebase బ్లాక్లను డ్రాప్ చేయండి (ఉదాహరణకు, యూజర్ tokensను చూడటానికి ఒక Get Document బ్లాక్, ఆపై ఆ tokensకు పుష్ చేయడానికి ఒక Send Notification బ్లాక్).
నా service account JSON ఎక్కడ నిల్వ చేయబడుతుంది?
chatbot_integration_tokens టేబుల్ లోపల, మీ టీమ్కు scope చేయబడి. సేవ్ చేసిన తర్వాత JSON ఎప్పుడూ బ్రౌజర్కు తిరిగి ఇవ్వబడదు. ChatMaxima Firebase కోసం స్వల్పకాలిక OAuth యాక్సెస్ టోకెన్లను రూపొందించడానికి దాన్ని సర్వర్-సైడ్లో ఉపయోగిస్తుంది.
నోటిఫికేషన్ వస్తుంది కానీ data payload తప్పిపోతుందా ఎందుకు?
FCMకు data payload విలువలు స్ట్రింగ్లు అవ్వాలి. మీరు numeric లేదా boolean వేరియబుల్ను నేరుగా పాస్ చేస్తే, ChatMaxima మీ కోసం దాన్ని stringify చేస్తుంది, కానీ కొన్ని క్లయింట్ యాప్లు నిర్దిష్ట ఫార్మాట్లను ఆశిస్తాయి. మీ యాప్ Androidలో RemoteMessage.getData() లేదా iOSలో userInfoను ఎలా చదువుతుందో రెండుసార్లు తనిఖీ చేయండి.
నా మల్టీకాస్ట్ సెండ్ కొన్ని tokens విఫలమైనట్లు చూపిస్తుంది. నేను ఏమి చేయాలి?
ప్రతిస్పందన వేరియబుల్లోని invalid_tokens అర్రేను చూడండి. ఇవి Firebase చనిపోయినవిగా భావించే tokens. వాటిని Firestoreలో యూజర్యొక్క tokens అర్రే నుండి తీసివేయడానికి Update Document బ్లాక్ను ఉపయోగించండి, తద్వారా అవి మళ్లీ లక్ష్యంగా చేయబడవు.
బ్లాక్ FCM tokenకు బదులుగా యూజర్ IDకి పంపగలదా?
నేరుగా కాదు. FCM పరికరాలను registration token ద్వారా చిరునామా చేస్తుంది, యూజర్ ద్వారా కాదు. సాధారణ నమూనా: యూజర్ tokensను Firestoreలో users/{user_id} కింద నిల్వ చేయండి, వాటిని ఫెచ్ చేయడానికి Get Document బ్లాక్ను ఉపయోగించండి, ఆపై token అర్రేను Send Notification బ్లాక్కు పాస్ చేయండి.
నేను సబ్కలెక్షన్లను క్వెరీ చేయగలనా?
ప్రస్తుత బ్లాక్ టాప్-లెవల్ కలెక్షన్లను క్వెరీ చేస్తుంది. నెస్టెడ్ లేదా సబ్కలెక్షన్ క్వెరీలు (ఉదాహరణకు, users/{uid}/orders) రోడ్మ్యాప్లో ఉన్నాయి. ఒక వర్క్అరౌండ్గా, denormalised డేటాను యూజర్ ID ద్వారా కీ చేయబడిన టాప్-లెవల్ కలెక్షన్లో నిల్వ చేయండి.
లైవ్గా వెళ్లడానికి ముందు నేను బ్లాక్ను ఎలా పరీక్షించాలి?
కొన్ని టెస్ట్ డాక్యుమెంట్లతో ఒక sandbox Firebase ప్రాజెక్ట్ను సృష్టించండి. దాన్ని ప్రత్యేక ChatMaxima ఇంటిగ్రేషన్గా కనెక్ట్ చేసి, బ్లాక్ను దానిపై పాయింట్ చేసి, Studioలో Preview మోడ్ నుండి ఫ్లోను నడపండి. మీరు సంతృప్తి చెందిన తర్వాత బ్లాక్ను production ఇంటిగ్రేషన్కు మార్చండి.
ట్రబుల్షూటింగ్
Verify & Save "Credential rejected by Firestore"తో విఫలమవుతుంది
- మీ Firebase ప్రాజెక్ట్ను తెరిచి Cloud Firestore ప్రారంభించబడిందని నిర్ధారించండి (Console → Firestore Database)
- service accountకు కనీసం Cloud Datastore User రోల్ ఉందని తనిఖీ చేయండి (IAM → Service Accounts)
- మీరు
\nnewline escapes చెక్కుచెదరకుండాprivate_keyఫీల్డ్తో సహా మొత్తం JSON ఫైల్ను అతికించారని నిర్ధారించండి - అసలు ఫైల్ సవరించబడితే లేదా పాక్షికంగా కాపీ చేయబడితే private keyను తిరిగి రూపొందించండి
బ్లాక్ "Firebase integration not found" చూపిస్తుంది
- ఇంటిగ్రేషన్ Dashboard → Integrations కింద ఉందని మరియు యాక్టివ్గా ఉందని నిర్ధారించండి
- మీరు ఇటీవల ఇంటిగ్రేషన్ను సృష్టించినట్లయితే, ఇంటిగ్రేషన్ డ్రాప్డౌన్ పక్కన ఉన్న రిఫ్రెష్ బటన్ను ఉపయోగించి బ్లాక్ మోడల్ను రిఫ్రెష్ చేయండి
- క్రెడెన్షియల్ Firebaseలో రొటేట్ చేయబడితే ఇంటిగ్రేషన్ను తొలగించి తిరిగి సృష్టించండి
Firestore "Document not found" (404)ను తిరిగి ఇస్తుంది
- కలెక్షన్ పేరు Firebaseలో కనిపించే విధంగా ఖచ్చితంగా స్పెల్ చేయబడిందని ధృవీకరించండి (case-sensitive)
- document IDని తనిఖీ చేయండి. ఇది వేరియబుల్ నుండి వస్తే, సబ్స్టిట్యూట్ చేయబడుతున్న వాస్తవ విలువను చూడటానికి conversation logను తనిఖీ చేయండి
- Firestore తప్పిపోయిన డాక్యుమెంట్ను ఖాళీదాని నుండి భిన్నంగా చూస్తుందని గుర్తుంచుకోండి. మీరు దానిపై శాఖలుగా విభజించగలిగేలా బ్లాక్ ప్రతిస్పందన వేరియబుల్లో
not_found: trueను తిరిగి ఇస్తుంది
FCM నోటిఫికేషన్ పరికరానికి రాదు
- FCM token చెల్లుబాటు అవుతుందని నిర్ధారించండి. యాప్ అన్ఇన్స్టాల్ లేదా రీఇన్స్టాల్ అయినప్పుడు tokens గడువు ముగుస్తాయి
- పరికరానికి మీ యాప్ కోసం నోటిఫికేషన్ అనుమతులు మంజూరు చేయబడ్డాయని తనిఖీ చేయండి
- ప్రతిస్పందన వేరియబుల్ను తనిఖీ చేయండి. విజయవంతమైన సెండ్
message_nameను తిరిగి ఇస్తుంది. వైఫల్యంerrorమరియు తరచుగాUNREGISTEREDవంటిerror_codeను తిరిగి ఇస్తుంది - పరికరం battery-saver మోడ్లో లేదని లేదా సిస్టమ్-స్థాయి Do Not Disturb ద్వారా బ్లాక్ చేయబడలేదని ధృవీకరించండి
Topic సెండ్ విజయవంతం అవుతుంది కానీ ఎవరూ స్వీకరించరు
- Topic డెలివరీ best-effort మరియు ఒక నిమిషం వరకు పట్టవచ్చు
- పరికరాలు వాస్తవంగా topicకు సబ్స్క్రైబ్ అయ్యాయని నిర్ధారించండి (క్లయింట్లో
messaging().subscribeToTopic('premium-users')) - Topic పేర్లు case-sensitive మరియు v1 APIలో
/topics/తో ప్రారంభించలేవు. కేవలం పేరును ఉపయోగించండి, ఉదాహరణకుpremium-users
ప్రతిస్పందన వేరియబుల్ ఖాళీగా ఉంది
- మీరు బ్లాక్పై Store the response in variable ఫీల్డ్ను పూరించారని నిర్ధారించండి
- వేరియబుల్ పేరు రిజర్వ్డ్ కీవర్డ్ లేదా మరొక బ్లాక్యొక్క వేరియబుల్తో ఢీకొనదని తనిఖీ చేయండి
- Firebase కాల్యొక్క రా ఫలితాన్ని చూడటానికి conversation logను తనిఖీ చేయండి
తదుపరి స్టెప్లు
- API బ్లాక్ - మీ ఫ్లో నుండి ఏదైనా బాహ్య REST APIని కాల్ చేయండి
- Webhook బ్లాక్ - మీ ఫ్లోలోకి ఇన్బౌండ్ HTTP కాల్లను స్వీకరించండి
- Condition బ్లాక్ - వేరియబుల్ విలువలపై ఫ్లోను శాఖలుగా విభజించండి
- Studio అవలోకనం - అన్ని బ్లాక్ రకాలు మరియు ఫ్లో బిల్డర్ ఫీచర్లను అన్వేషించండి
Webhook Response బ్లాక్ - Webhook కాలర్లకు కస్టమ్ HTTP ప్రతిస్పందనలను పంపండి
మీ ChatMaxima webhookను ట్రిగర్ చేసిన సిస్టమ్కు కస్టమ్ JSON, XML, లేదా సాదా టెక్స్ట్ ప్రతిస్పందనలను తిరిగి పంపండి. స్టేటస్ కోడ్, content type మరియు bodyను కాన్ఫిగర్ చేయండి.
Knowledge Source: Train Your AI on Your Own Content
Train your AI with your business knowledge