ChatMaxima Docs
Studio

Firebase Block - உங்கள் சாட்பாட்டில் Firestore மற்றும் Cloud Messaging

Firebase Firestore மற்றும் Cloud Messaging ஐ உங்கள் ChatMaxima சாட்பாட்டுடன் இணைக்கவும். Studio ஓட்டங்களிலிருந்து ஆவணங்களைப் படிக்கவும், சேகரிப்புகளை வினவவும், மற்றும் push அறிவிப்புகளை அனுப்பவும்.

கண்ணோட்டம்

Firebase Block உங்கள் ChatMaxima சாட்பாட்டை ஒரு Firebase திட்டத்துடன் நேரடியாக இணைக்கிறது. இது உங்கள் ஓட்டத்தை Cloud Firestore இல் ஆவணங்களைப் படிக்கவும் எழுதவும், மற்றும் உங்கள் மொபைல் அல்லது வலை ஆப் பயனர்களுக்கு FCM push அறிவிப்புகளை அனுப்பவும் அனுமதிக்கிறது, இவை அனைத்தும் ஒரே தொகுதியிலிருந்து. நீங்கள் கட்டமைக்கும் எந்தவொரு செயல்பாடும் நீங்கள் தொகுதியை விடும் உரையாடலின் சரியான புள்ளியில் இயங்குகிறது, எனவே உங்கள் பாட் Firestore இலிருந்து தரவை இழுக்கலாம், நிலையை அதில் மீண்டும் சேமிக்கலாம், அல்லது ஒரு குறிப்பிட்ட உரையாடல் நிலைக்கு பதிலளிக்கும் வகையில் ஒரு push அறிவிப்பைத் தூண்டலாம்.

வழக்கமான பயன்பாட்டு வழக்குகளில் உங்கள் சொந்த Firestore சேகரிப்புகளில் லீட் தரவைச் சேமிப்பது, அங்கீகரிக்கப்பட்ட பயனரின் சுயவிவரத்தை ID மூலம் தேடுவது, உங்கள் ஆப்பின் பின்தளத்திலிருந்து ஆர்டர் அல்லது முன்பதிவு நிலையைச் சரிபார்ப்பது, மற்றும் உரையாடல் ஒரு மைல்கல்லை அடையும்போது (ஆர்டர் உறுதிசெய்யப்பட்டது, சந்திப்பு முன்பதிவு செய்யப்பட்டது, ஆதரவு டிக்கெட் தீர்க்கப்பட்டது) ஒரு பயனரின் சாதனங்களுக்கு அறிவிப்புகளைத் தள்ளுவது ஆகியவை அடங்கும். தொகுதி அங்கீகாரம், டோக்கன் கேஷிங், மற்றும் பிழை வழியமைப்பை தானாகவே கையாளுகிறது, எனவே நீங்கள் ஒரு செயல்பாட்டைத் தேர்ந்தெடுத்து அதற்கு முக்கியமான புலங்களை மட்டும் நிரப்ப வேண்டும்.

முன்நிபந்தனைகள்

ஒரு ஓட்டத்தில் Firebase block ஐச் சேர்ப்பதற்கு முன், உங்களிடம் இருப்பதை உறுதிசெய்யுங்கள்:

  • Cloud Firestore இயக்கப்பட்ட ஒரு Firebase திட்டம். இந்தத் தொகுதியில் Realtime Database ஆதரிக்கப்படவில்லை (v1 Firestore ஐ மட்டுமே உள்ளடக்கியது).
  • உங்கள் Firebase திட்டத்திலிருந்து பதிவிறக்கம் செய்யப்பட்ட ஒரு service account JSON கீ. Firebase Console இல் Project Settings க்குச் சென்று, Service Accounts தாவலைத் திறந்து, Generate new private key ஐக் கிளிக் செய்யுங்கள். பதிவிறக்கம் செய்யப்பட்ட JSON கோப்பைச் சேமிக்கவும். அடுத்த படியில் அதன் உள்ளடக்கங்களை ChatMaxima இல் ஒட்டுவீர்கள்.
  • நீங்கள் push அறிவிப்புகளை அனுப்பத் திட்டமிட்டால் உங்கள் கிளையன்ட் ஆப்பில் FCM அமைக்கப்பட்டுள்ளது. ஒவ்வொரு சாதனமும் Firebase உடன் பதிவுசெய்யப்பட்டு அதன் FCM பதிவு டோக்கன் பாட் பெறக்கூடிய இடத்தில் (பொதுவாக ஒரு Firestore users/{user_id}.tokens வரிசை) சேமிக்கப்பட வேண்டும்.

குறிப்பு: service account கீ ஒரு நீண்ட கால ரகசியம். ஒரு production தரவுத்தள கடவுச்சொல்லை நீங்கள் கையாளும் அதே வழியில் அதைக் கையாளுங்கள். அதை source control க்கு கமிட் செய்ய வேண்டாம் அல்லது அரட்டையில் பகிர வேண்டாம்.

படி 1: Firebase ஐ ஒரு Integration ஆக இணைக்கவும்

  1. DashboardIntegrations க்குச் சென்று Add Integration ஐக் கிளிக் செய்யுங்கள்
  2. platform டிராப்டவுனிலிருந்து Firebase ஐத் தேர்ந்தெடுக்கவும்
  3. நீங்கள் பின்னர் அடையாளம் காணும் வகையில் ஒரு பெயரை (எடுத்துக்காட்டாக, Production Firebase அல்லது My App Firestore) உள்ளிடவும்
  4. service account JSON கோப்பின் முழு உள்ளடக்கங்களையும் Service Account JSON புலத்தில் ஒட்டவும்
  5. Verify & Save ஐக் கிளிக் செய்யுங்கள்

ChatMaxima private key உடன் ஒரு JWT இல் கையெழுத்திட்டு, அதை ஒரு OAuth access token க்கு பரிமாறி, Firestore இன் listCollectionIds எண்ட்பாயிண்டிற்கு ஒரு சோதனை அழைப்பைச் செய்து சான்றை சரிபார்க்கிறது. திட்டத்தில் Firestore இயக்கப்பட்டிருந்து service account க்கு அணுகல் இருந்தால், Firebase integration connected ஐக் காண்பீர்கள். integration இப்போது உங்கள் குழுவில் உள்ள ஒவ்வொரு பாட்டிற்கும் கிடைக்கிறது.

குறிப்பு: access token ChatMaxima க்குள் கேஷ் செய்யப்பட்டு காலாவதியாகுவதற்கு முன் தானாகவே புதுப்பிக்கப்படுகிறது. நீங்கள் வேறு Firebase திட்டத்திற்கு நகர விரும்பாவிட்டால், service account JSON ஐ சுழற்ற அல்லது மீண்டும் உள்ளிட வேண்டியதில்லை.

படி 2: ஒரு ஓட்டத்தில் Firebase Block ஐச் சேர்க்கவும்

  1. Studio இல் உங்கள் சாட்பாட்டைத் திறக்கவும்
  2. கேன்வாஸை வலது-கிளிக் செய்யுங்கள் (அல்லது இடது பக்கப்பட்டியிலிருந்து இழுக்கவும்) மற்றும் External Integrations இன் கீழ் Firebase ஐத் தேர்ந்தெடுக்கவும்
  3. அதன் கட்டமைப்பைத் திறக்க தொகுதியை இரட்டை-கிளிக் செய்யுங்கள்
  4. Select Integration டிராப்டவுனிலிருந்து படி 1 இல் நீங்கள் உருவாக்கிய integration ஐத் தேர்ந்தெடுக்கவும்
  5. ஒரு செயல்பாட்டைத் தேர்ந்தெடுத்து கீழே விவரிக்கப்பட்ட புலங்களை நிரப்பவும்

கிடைக்கும் செயல்பாடுகள்

Firebase block ஏழு செயல்பாடுகளை ஆதரிக்கிறது. முதல் ஆறு Cloud Firestore உடன் வேலை செய்கின்றன. ஏழாவது ஒரு Cloud Messaging (FCM) push அறிவிப்பை அனுப்புகிறது.

செயல்பாடுவகைஅது என்ன செய்கிறது
Get DocumentFirestorecollection மற்றும் document ID மூலம் ஒற்றை ஆவணத்தைப் படிக்கிறது
Add DocumentFirestoreஒரு புதிய ஆவணத்தை உருவாக்குகிறது. நீங்கள் காலியாக விட்டால் Firestore ID ஐ தானாக உருவாக்குகிறது
Set DocumentFirestoreஒரு குறிப்பிட்ட ID இல் ஆவணத்தை மேலெழுதுகிறது. அனைத்து புலங்களையும் மாற்றுகிறது
Update DocumentFirestoreநீங்கள் வழங்கும் புலங்களை மட்டும் ஒரு இருக்கும் ஆவணத்தில் இணைக்கிறது
Delete DocumentFirestoreஒரு குறிப்பிட்ட ID இல் ஒரு ஆவணத்தை அகற்றுகிறது
Query CollectionFirestoreஆவணங்களின் ஒரு சேகரிப்பை வடிகட்டி, வரிசைப்படுத்தி, வரம்பிடுகிறது
Send NotificationCloud Messagingஒரு சாதனம், பல சாதனங்கள், அல்லது ஒரு topic க்கு ஒரு அறிவிப்பைத் தள்ளுகிறது

ஒவ்வொரு உள்ளீடும் (collection, document ID, புல மதிப்புகள், FCM டோக்கன், அறிவிப்பு தலைப்பு, மற்றும் body) {variable} தொடரியலுடன் ChatMaxima மாறிகளை ஆதரிக்கிறது, எனவே அவற்றை முந்தைய கேள்வி தொகுதிகள், முந்தைய API அழைப்புகள், அல்லது ஒரு Webhook தொகுதியில் பெறப்பட்ட தரவிலிருந்து நிரப்பலாம்.

செயல்பாட்டு கட்டமைப்பு

Get Document

ID மூலம் ஒரு ஆவணத்தைப் படிக்கிறது. ஒரு பயனரின் சுயவிவரத்தைத் தேட, ஒரு ஆர்டரின் தற்போதைய நிலையைப் பெற, அல்லது நீங்கள் ஏற்கனவே ID வைத்திருக்கும் எந்த பதிவையும் இழுக்க இதைப் பயன்படுத்துங்கள்.

புலம்விளக்கம்
CollectionFirestore collection பெயர் (எடுத்துக்காட்டாக, users, orders). கண்டறியப்பட்ட பட்டியலிலிருந்து தேர்ந்தெடுக்கவும் அல்லது புதியதை தட்டச்சு செய்யவும்
Document IDபடிக்க வேண்டிய ID. {user_id} போன்ற மாறிகளை ஆதரிக்கிறது
Store the response in variableமுடிவை வைத்திருக்கும் ChatMaxima மாறியின் பெயர்

Add Document

ஒரு collection இல் ஒரு புதிய ஆவணத்தை உருவாக்குகிறது. Firestore ஒன்றை தானாக உருவாக்க Document ID ஐ காலியாக விடவும், அல்லது உங்கள் சொந்த ஒன்றை வழங்கவும் (எடுத்துக்காட்டாக, {lead_id}).

புலம்விளக்கம்
Collectionஇலக்கு collection
Document ID (optional)தானியங்கி ID க்கு காலியாக விடவும், அல்லது ஒரு தனிப்பயன் ஒன்றை வழங்கவும்
Field MappingKey/value வரிசைகள். Keys என்பது Firestore புல பெயர்கள், மதிப்புகள் literals அல்லது {variable} குறிப்புகளாக இருக்கலாம்
Store the response in variableசேமிக்கப்பட்ட ஆவணம் (அதன் உருவாக்கப்பட்ட ID உடன்) இங்கே சேமிக்கப்படுகிறது

Set Document

நீங்கள் பட்டியலிடும் சரியான புலங்களுடன் collection/document_id இல் உள்ள ஆவணத்தை மேலெழுதுகிறது. ஆவணத்தில் முன்பு இருந்த ஆனால் உங்கள் வரைபடத்தில் இல்லாத எந்த புலங்களும் அகற்றப்படுகின்றன. ஒரு merge க்குப் பதிலாக ஒரு சுத்தமான மாற்றீடு வேண்டும்போது இதைப் பயன்படுத்துங்கள்.

Update Document

நீங்கள் வழங்கும் புலங்களை மட்டும் ஒரு இருக்கும் ஆவணத்தில் இணைக்கிறது. உங்கள் வரைபடத்தில் இல்லாத புலங்கள் தொடப்படாமல் விடப்படுகின்றன. ஒரு பயனரின் சுயவிவரம் அல்லது ஆர்டர் பதிவை படிப்படியாகப் புதுப்பிப்பதற்கான மிகவும் பாதுகாப்பான எழுது செயல்பாடு இதுவாகும்.

Delete Document

collection/document_id இல் உள்ள ஆவணத்தை அகற்றுகிறது. delete வெற்றியடைந்தால் பதில் மாறி {"success": true} ஐக் கொண்டிருக்கும்.

Query Collection

ஒரு collection க்கு எதிராக ஒரு Firestore கட்டமைக்கப்பட்ட வினவலை இயக்குகிறது. வடிகட்டிகள், வரிசைப்படுத்தல், மற்றும் ஒரு வரிசை வரம்பை ஆதரிக்கிறது.

புலம்விளக்கம்
Collectionவினவ வேண்டிய collection
Query Filtersfield, operator, value வரிசைகள். AND உடன் இணைக்கப்பட்டது
Order By Fieldவரிசைப்படுத்த விருப்ப புல பெயர்
Order DirectionAscending அல்லது Descending
Limitதிருப்பித் தர வேண்டிய அதிகபட்ச ஆவணங்களின் எண்ணிக்கை. வரம்பு இல்லாமல் காலியாக விடவும்

ஆதரிக்கப்படும் வடிகட்டி இயக்கிகள்:

இயக்கிபொருள்
EQUALபுலம் மதிப்புக்கு சமம்
NOT_EQUALபுலம் மதிப்புக்கு சமம் இல்லை
LESS_THANபுலம் மதிப்பை விட குறைவு
LESS_THAN_OR_EQUALபுலம் மதிப்பை விட குறைவு அல்லது சமம்
GREATER_THANபுலம் மதிப்பை விட அதிகம்
GREATER_THAN_OR_EQUALபுலம் மதிப்பை விட அதிகம் அல்லது சமம்
ARRAY_CONTAINSபுலம் மதிப்பைக் கொண்ட ஒரு வரிசை
INபுல மதிப்பு பட்டியலிடப்பட்ட மதிப்புகளில் ஒன்று
ARRAY_CONTAINS_ANYபுல வரிசை பட்டியலிடப்பட்ட மதிப்புகளில் ஏதேனும் ஒன்றைக் கொண்டுள்ளது
NOT_INபுல மதிப்பு பட்டியலிடப்பட்ட மதிப்புகளில் எதுவும் இல்லை

Send Notification

ஒரு FCM push அறிவிப்பை அனுப்புகிறது. மூன்று இலக்குகளில் ஒன்றைத் தேர்ந்தெடுக்கவும்:

Send Toஎப்போது பயன்படுத்துவது
A Single Deviceஒரு குறிப்பிட்ட FCM பதிவு டோக்கன்
Multiple Devicesஒரே படியில் பல டோக்கன்களுக்கு multicast. ஒரு JSON வரிசை, கமாவால் பிரிக்கப்பட்ட சரம், அல்லது நேட்டிவ் வரிசையாகத் தீர்க்கும் ஒரு மாறியை ஏற்கிறது
A Topicஒரு topic க்கு குழுசேர்ந்த ஒவ்வொரு சாதனத்திற்கும் ஒளிபரப்பு (எடுத்துக்காட்டாக, premium-users)

கட்டமைப்பு புலங்கள்:

புலம்விளக்கம்
FCM Token / Tokens / Topicஇலக்கு வகையைப் பொறுத்து பெறுநர். மாறிகள் ஆதரிக்கப்படுகின்றன
Notification Titlepush அறிவிப்பில் காண்பிக்கப்படும் தடிமனான தலைப்பு
Notification Bodyதலைப்புக்கு கீழே காண்பிக்கப்படும் செய்தி உரை
Data Payloadஅறிவிப்புடன் அமைதியாக வழங்கப்படும் விருப்ப key/value ஜோடிகள். deep linking க்கு பயனுள்ளது (எடுத்துக்காட்டாக, screen=orders, order_id={order_id}). FCM விதிகளின்படி, அனுப்புவதற்கு முன் மதிப்புகள் stringify செய்யப்படுகின்றன

பதில் மாறி வடிவம்

ஒவ்வொரு செயல்பாடும் Store the response in variable இன் கீழ் நீங்கள் பெயரிடும் மாறியில் ஒரு JSON முடிவைச் சேமிக்கிறது. Downstream தொகுதிகள் dot notation ஐப் பயன்படுத்தி புலங்களைக் குறிப்பிடலாம், எடுத்துக்காட்டாக {user_data.data.email}.

Firestore படிப்புகள் (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 எழுதுதல்கள் (Add / Set / Update)

Get Document இன் அதே வடிவம். id புலம் இறுதி document 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 பழையதாகக் கொடியிட்ட டோக்கன்களைப் (UNREGISTERED, INVALID_ARGUMENT, NOT_FOUND) பட்டியலிடுகிறது. இவற்றை உங்கள் சொந்த Firestore users collection இலிருந்து நீக்க Update Document உடன் ஒரு பின்தொடர்தல் Firebase தொகுதியைப் பயன்படுத்துங்கள், இதனால் நீங்கள் இறந்த சாதனங்களை இலக்காகக் கொள்வதை நிறுத்துவீர்கள்.

பொதுவான பயன்பாட்டு வழக்குகள்

ஆர்டர் உறுதிப்படுத்தல் Push அறிவிப்பு

ஒரு வாடிக்கையாளர் ஆப்பில் checkout ஐ நிறைவு செய்கிறார், மற்றும் பயனர் பதிவுசெய்த ஒவ்வொரு சாதனத்திற்கும் ஒரு உறுதிப்படுத்தலைத் தள்ள பாட் வேண்டும்.

  1. Question Block: {user_id} ஐப் பிடிக்கவும் அல்லது சரிபார்க்கவும்
  2. Firebase Block (Get Document): Collection users, Document ID {user_id}, முடிவை {user_data} இல் சேமிக்கவும்
  3. Condition Block: {order_status} == "confirmed" இல் கிளைக்கவும்
  4. Firebase Block (Send Notification, Multiple Devices): Tokens {user_data.data.tokens}, title Order confirmed, body Hi {user_data.data.name}, your order {order_id} is on its way
  5. Message Block: We have sent a confirmation to your devices

சாட்பாட் லீட்களை Firestore க்கு எழுதுதல்

உங்கள் சொந்த மொபைல் ஆப் நிகழ்நேரத்தில் செயல்பட உள்வரும் லீட்களுக்கான உண்மையின் மூலமாக Firestore ஐப் பயன்படுத்துங்கள்.

  1. Question Block: {name}, {email}, {phone} ஐக் கேளுங்கள்
  2. Firebase Block (Add Document): Collection chatbot_leads, fields name={name}, email={email}, phone={phone}, source=chatbot
  3. Message Block: Thanks {name}, we will be in touch shortly

முன்பதிவு கிடைக்கும் தன்மையைச் சரிபார்த்தல்

ஒரு முன்பதிவை உறுதிப்படுத்துவதற்கு முன், இடைவெளி இன்னும் திறந்திருப்பதை உறுதிப்படுத்த Firestore ஐ வினவவும்.

  1. Firebase Block (Query Collection): Collection bookings, filter slot_id EQUAL {slot_id} மற்றும் status NOT_EQUAL cancelled, limit 1, {existing_bookings} இல் சேமிக்கவும்
  2. Condition Block: {existing_bookings} காலியாக உள்ளதா என்பதில் கிளைக்கவும்
  3. காலியாக இருந்தால்: முன்பதிவை உருவாக்க Firebase Block (Add Document), பின்னர் உறுதிப்படுத்த Message Block
  4. பொருந்தினால்: Message Block That slot was just taken, please pick another

ஒரு Topic க்கு ஒளிபரப்புதல்

ஒரு topic க்கு குழுசேர்ந்த ஒவ்வொரு சாதனத்திற்கும் ஒரு ஒன்றுக்கு-பல அறிவிப்பை அனுப்புங்கள்.

  1. Trigger Block: நிர்வாகி ஒரு Campaign உடன் ஓட்டத்தைத் தூண்டுகிறார்
  2. Firebase Block (Send Notification, Topic): Topic premium-users, title New feature released, body Tap to try it out, data screen=whats_new

பழைய FCM டோக்கன்களை சுத்தம் செய்தல்

ஒரு multicast அனுப்பலுக்குப் பிறகு, எதிர்கால push கள் நேரடி சாதனங்களுக்கு மட்டுமே செல்லும்படி பயனரின் சுயவிவரத்திலிருந்து இறந்த டோக்கன்களை அகற்றுங்கள்.

  1. Firebase Block (Send Notification, Multiple Devices): முடிவை {push_result} இல் சேமிக்கவும்
  2. Condition Block: {push_result.invalid_tokens} காலியற்றதா என்பதில் கிளைக்கவும்
  3. Code Block அல்லது API Block: சுத்தம் செய்யப்பட்ட டோக்கன் பட்டியலைக் கணக்கிடுங்கள்
  4. Firebase Block (Update Document): Collection users, Document ID {user_id}, field tokens={pruned_tokens}

சிறந்த நடைமுறைகள்

  • service account ஐ சரியாக நோக்கப்படுத்துங்கள். ChatMaxima க்காக ஒரு பிரத்யேக service account ஐ உருவாக்கி அதற்குத் தேவையான Firestore மற்றும் FCM பங்குகளை மட்டுமே வழங்குங்கள். production க்கு இயல்புநிலை Admin SDK கீ ஐப் பயன்படுத்த வேண்டாம்
  • FCM டோக்கன்களை ஒரு வரிசையாகச் சேமிக்கவும். பயனர்களுக்கு பெரும்பாலும் பல சாதனங்கள் உள்ளன. ஒவ்வொரு பயனருக்கும் அவற்றை ஒரு tokens புலத்தில் வைத்திருப்பது multicast அனுப்பல்களை எளிதாக்குகிறது
  • பிழை கிளையைக் கையாளுங்கள். ஒவ்வொரு Firebase தொகுதிக்கும் செயல்பாடு தோல்வியடையும்போது இயக்கும் இரண்டாவது வெளியீடு உள்ளது. ஓட்டத்தை நிறுத்த விடுவதற்குப் பதிலாக அதை ஒரு மீட்பு செய்தி அல்லது மீண்டும் முயற்சிக்கு வழியமைக்கவும்
  • பழைய டோக்கன்களை நீக்குங்கள். ஒரு டோக்கன் இறந்தால் FCM UNREGISTERED ஐத் திருப்பித் தருகிறது. உங்கள் பயனர் சுயவிவரங்களைச் சுத்தம் செய்ய multicast பதிலில் உள்ள 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 integration சான்று இரண்டு தயாரிப்புகளையும் அங்கீகரிக்கிறது. உங்களுக்குத் தேவையான ஒவ்வொரு செயல்பாட்டிற்கும் தனி Firebase தொகுதிகளை விடுங்கள் (எடுத்துக்காட்டாக, பயனரின் டோக்கன்களைத் தேட ஒரு Get Document தொகுதி, பின்னர் அந்த டோக்கன்களுக்குத் தள்ள ஒரு Send Notification தொகுதி).

என் service account JSON எங்கே சேமிக்கப்படுகிறது?

உங்கள் குழுவிற்கு நோக்கப்படுத்தப்பட்ட chatbot_integration_tokens அட்டவணைக்குள். சேமித்த பிறகு JSON ஒருபோதும் உலாவிக்குத் திருப்பித் தரப்படுவதில்லை. Firebase க்கான குறுகிய கால OAuth access tokens ஐ உருவாக்க ChatMaxima அதை server-side இல் பயன்படுத்துகிறது.

அறிவிப்பு வந்துசேர்கிறது ஆனால் data payload காணவில்லை, ஏன்?

FCM க்கு data payload மதிப்புகள் சரங்களாக இருக்க வேண்டும். நீங்கள் ஒரு எண் அல்லது boolean மாறியை நேரடியாகக் கடத்தினால், ChatMaxima உங்களுக்காக அதை stringify செய்கிறது, ஆனால் சில கிளையன்ட் ஆப்கள் குறிப்பிட்ட வடிவங்களை எதிர்பார்க்கின்றன. உங்கள் ஆப் Android இல் RemoteMessage.getData() அல்லது iOS இல் userInfo ஐ எவ்வாறு படிக்கிறது என்பதை இருமுறை சரிபார்க்கவும்.

என் multicast அனுப்பல் சில டோக்கன்கள் தோல்வியடைந்ததைக் காண்பிக்கிறது. நான் என்ன செய்வது?

பதில் மாறியில் உள்ள invalid_tokens வரிசையைப் பாருங்கள். இவை Firebase இறந்ததாகக் கருதும் டோக்கன்கள். அவை மீண்டும் இலக்காக்கப்படாதபடி Firestore இல் பயனரின் tokens வரிசையிலிருந்து அவற்றை அகற்ற ஒரு Update Document தொகுதியைப் பயன்படுத்துங்கள்.

தொகுதி ஒரு FCM டோக்கனுக்குப் பதிலாக ஒரு user ID க்கு அனுப்ப முடியுமா?

நேரடியாக இல்லை. FCM சாதனங்களை user ஆல் அல்ல, registration token ஆல் முகவரியிடுகிறது. இயல்பான வடிவம்: பயனரின் டோக்கன்களை Firestore இல் users/{user_id} இன் கீழ் சேமிக்கவும், அவற்றைப் பெற ஒரு Get Document தொகுதியைப் பயன்படுத்தவும், பின்னர் டோக்கன் வரிசையை Send Notification தொகுதிக்குக் கடத்தவும்.

நான் subcollections ஐ வினவ முடியுமா?

தற்போதைய தொகுதி top-level collections ஐ வினவுகிறது. உள்ளமைக்கப்பட்ட அல்லது subcollection வினவல்கள் (எடுத்துக்காட்டாக, users/{uid}/orders) roadmap இல் உள்ளன. ஒரு வழிமுறையாக, user ID ஆல் keyed செய்யப்பட்ட ஒரு top-level collection இல் denormalised தரவைச் சேமிக்கவும்.

நேரடியாகச் செல்வதற்கு முன் தொகுதியை எவ்வாறு சோதிப்பது?

சில சோதனை ஆவணங்களுடன் ஒரு sandbox Firebase திட்டத்தை உருவாக்குங்கள். அதை ஒரு தனி ChatMaxima integration ஆக இணைத்து, தொகுதியை அதை நோக்கி சுட்டிக்காட்டி, Studio இல் Preview பயன்முறையிலிருந்து ஓட்டத்தை இயக்குங்கள். நீங்கள் திருப்தியடைந்தவுடன் தொகுதியை production integration க்கு மாற்றவும்.

சிக்கல் தீர்வு

Verify & Save "Credential rejected by Firestore" உடன் தோல்வியடைகிறது

  1. உங்கள் Firebase திட்டத்தைத் திறந்து Cloud Firestore இயக்கப்பட்டுள்ளதை உறுதிப்படுத்தவும் (Console → Firestore Database)
  2. service account க்கு குறைந்தபட்சம் Cloud Datastore User பங்கு உள்ளதைச் சரிபார்க்கவும் (IAM → Service Accounts)
  3. \n newline escapes அப்படியே உள்ள private_key புலம் உட்பட, முழு JSON கோப்பையும் ஒட்டியதை உறுதிசெய்யுங்கள்
  4. அசல் கோப்பு திருத்தப்பட்டிருந்தால் அல்லது பகுதியளவு நகலெடுக்கப்பட்டிருந்தால் private key ஐ மீண்டும் உருவாக்குங்கள்

தொகுதி "Firebase integration not found" ஐக் காண்பிக்கிறது

  1. integration Dashboard → Integrations இன் கீழ் உள்ளது மற்றும் செயலில் உள்ளது என்பதை உறுதிப்படுத்தவும்
  2. நீங்கள் சமீபத்தில் integration ஐ உருவாக்கியிருந்தால், integration டிராப்டவுனுக்கு அடுத்துள்ள refresh பட்டனைப் பயன்படுத்தி தொகுதி மோடலைப் புதுப்பிக்கவும்
  3. Firebase இல் சான்று சுழற்றப்பட்டிருந்தால் integration ஐ நீக்கி மீண்டும் உருவாக்குங்கள்

Firestore "Document not found" (404) ஐத் திருப்பித் தருகிறது

  1. collection பெயர் Firebase இல் தோன்றுவது போல சரியாக எழுதப்பட்டுள்ளதைச் சரிபார்க்கவும் (எழுத்து-உணர்திறன்)
  2. document ID ஐச் சரிபார்க்கவும். அது ஒரு மாறியிலிருந்து வந்தால், மாற்றப்படும் உண்மையான மதிப்பைப் பார்க்க உரையாடல் பதிவை ஆய்வு செய்யுங்கள்
  3. Firestore ஒரு காணாமல்போன ஆவணத்தை ஒரு காலியான ஒன்றிலிருந்து வித்தியாசமாகக் கருதுகிறது என்பதை நினைவில் கொள்ளுங்கள். தொகுதி பதில் மாறியில் not_found: true ஐத் திருப்பித் தருகிறது, எனவே நீங்கள் அதில் கிளைக்கலாம்

FCM அறிவிப்பு சாதனத்தில் வந்து சேரவில்லை

  1. FCM டோக்கன் செல்லுபடியாகும் என்பதை உறுதிப்படுத்தவும். ஆப் நிறுவல் நீக்கப்பட்டால் அல்லது மீண்டும் நிறுவப்பட்டால் டோக்கன்கள் காலாவதியாகும்
  2. சாதனத்தில் உங்கள் ஆப்பிற்கு அறிவிப்பு அனுமதிகள் வழங்கப்பட்டுள்ளதைச் சரிபார்க்கவும்
  3. பதில் மாறியை ஆய்வு செய்யுங்கள். ஒரு வெற்றிகரமான அனுப்பல் message_name ஐத் திருப்பித் தருகிறது. ஒரு தோல்வி error மற்றும் பெரும்பாலும் UNREGISTERED போன்ற ஒரு error_code ஐத் திருப்பித் தருகிறது
  4. சாதனம் battery-saver பயன்முறையில் இல்லை அல்லது அமைப்பு-மட்ட Do Not Disturb ஆல் தடுக்கப்படவில்லை என்பதைச் சரிபார்க்கவும்

Topic அனுப்பல் வெற்றியடைகிறது ஆனால் யாரும் பெறவில்லை

  1. Topic வழங்கல் best-effort மற்றும் ஒரு நிமிடம் வரை எடுக்கலாம்
  2. சாதனங்கள் உண்மையில் topic க்கு குழுசேர்ந்துள்ளதை உறுதிப்படுத்தவும் (கிளையன்ட்டில் messaging().subscribeToTopic('premium-users'))
  3. Topic பெயர்கள் எழுத்து-உணர்திறன் கொண்டவை மற்றும் v1 API இல் /topics/ உடன் தொடங்க முடியாது. பெயரை மட்டும் பயன்படுத்துங்கள், எடுத்துக்காட்டாக premium-users

பதில் மாறி காலியாக உள்ளது

  1. தொகுதியில் Store the response in variable புலத்தை நிரப்பியதை உறுதிசெய்யுங்கள்
  2. மாறி பெயர் ஒரு ஒதுக்கப்பட்ட keyword அல்லது மற்றொரு தொகுதியின் மாறியுடன் மோதவில்லை என்பதைச் சரிபார்க்கவும்
  3. Firebase அழைப்பின் raw முடிவைப் பார்க்க உரையாடல் பதிவை ஆய்வு செய்யுங்கள்

அடுத்த படிகள்

  • API Block - உங்கள் ஓட்டத்திலிருந்து எந்தவொரு வெளிப்புற REST API ஐயும் அழைக்கவும்
  • Webhook Block - உங்கள் ஓட்டத்திற்கு உள்வரும் HTTP அழைப்புகளைப் பெறவும்
  • Condition Block - மாறி மதிப்புகளில் ஓட்டத்தைக் கிளைக்கவும்
  • Studio கண்ணோட்டம் - அனைத்து தொகுதி வகைகள் மற்றும் ஓட்ட பில்டர் அம்சங்களை ஆராயுங்கள்

இந்தப் பக்கத்தில்

கண்ணோட்டம்முன்நிபந்தனைகள்படி 1: Firebase ஐ ஒரு Integration ஆக இணைக்கவும்படி 2: ஒரு ஓட்டத்தில் Firebase Block ஐச் சேர்க்கவும்கிடைக்கும் செயல்பாடுகள்செயல்பாட்டு கட்டமைப்புGet DocumentAdd DocumentSet DocumentUpdate DocumentDelete DocumentQuery CollectionSend Notificationபதில் மாறி வடிவம்Firestore படிப்புகள் (Get Document)Firestore எழுதுதல்கள் (Add / Set / Update)Firestore DeleteQuery CollectionSend Notification (single / topic)Send Notification (multicast)பொதுவான பயன்பாட்டு வழக்குகள்ஆர்டர் உறுதிப்படுத்தல் Push அறிவிப்புசாட்பாட் லீட்களை Firestore க்கு எழுதுதல்முன்பதிவு கிடைக்கும் தன்மையைச் சரிபார்த்தல்ஒரு Topic க்கு ஒளிபரப்புதல்பழைய FCM டோக்கன்களை சுத்தம் செய்தல்சிறந்த நடைமுறைகள்அடிக்கடி கேட்கப்படும் கேள்விகள்தொகுதி எந்த Firebase தயாரிப்புகளை ஆதரிக்கிறது?Firestore மற்றும் FCM இரண்டிற்கும் அதே தொகுதியைப் பயன்படுத்தலாமா?என் service account JSON எங்கே சேமிக்கப்படுகிறது?அறிவிப்பு வந்துசேர்கிறது ஆனால் data payload காணவில்லை, ஏன்?என் multicast அனுப்பல் சில டோக்கன்கள் தோல்வியடைந்ததைக் காண்பிக்கிறது. நான் என்ன செய்வது?தொகுதி ஒரு FCM டோக்கனுக்குப் பதிலாக ஒரு user ID க்கு அனுப்ப முடியுமா?நான் subcollections ஐ வினவ முடியுமா?நேரடியாகச் செல்வதற்கு முன் தொகுதியை எவ்வாறு சோதிப்பது?சிக்கல் தீர்வுVerify & Save "Credential rejected by Firestore" உடன் தோல்வியடைகிறதுதொகுதி "Firebase integration not found" ஐக் காண்பிக்கிறதுFirestore "Document not found" (404) ஐத் திருப்பித் தருகிறதுFCM அறிவிப்பு சாதனத்தில் வந்து சேரவில்லைTopic அனுப்பல் வெற்றியடைகிறது ஆனால் யாரும் பெறவில்லைபதில் மாறி காலியாக உள்ளதுஅடுத்த படிகள்