π₯ FireMatch & FireMatchRoom
π₯ FireMatch & FireMatchRoom AI2 Extensions π₯ FireMatch and FireMatchRoom extensions for real-time 1v1 matchmaking using Firebase Realtime Database. These extensions provide efficient player matching, data exchange, and room management with seamless Firebase integration.
 FireMatch and FireMatchRoom extensions for real-time 1v1 matchmaking using Firebase Realtime Database. These extensions provide efficient player matching, data exchange, and room management with seamless Firebase integration.
 FireMatch (Random 1v1 Matchmaking)
 FireMatch (Random 1v1 Matchmaking)
 Auto Matchmaking - Automatically finds and matches two players. Auto Matchmaking - Automatically finds and matches two players.
 Instant Matching System - Uses a queue-based system to prevent duplicate matches. Instant Matching System - Uses a queue-based system to prevent duplicate matches.
 Real-Time Game Data Exchange - Allows instant data transfer between players. Real-Time Game Data Exchange - Allows instant data transfer between players.
 Optimized Firebase Structure - Ensures smooth performance and minimal data usage. Optimized Firebase Structure - Ensures smooth performance and minimal data usage.
 Simple to Use - No manual room creation required just join and play. Simple to Use - No manual room creation required just join and play.
 FireMatchRoom (Room-Based 1v1 Matchmaking)
 FireMatchRoom (Room-Based 1v1 Matchmaking)
 Custom Room System - Host can create a Room ID and invite another player. Custom Room System - Host can create a Room ID and invite another player.
 Real-Time Game Data Exchange - Enables smooth communication within the room. Real-Time Game Data Exchange - Enables smooth communication within the room.
 Common Features in Both Extensions
 Common Features in Both Extensions
 Flexible Room Management - Allows controlled entry and exit of players. Players can leave and reset the room Flexible Room Management - Allows controlled entry and exit of players. Players can leave and reset the room
 Rejoin Room Support - A player can reconnect using the same Room ID if disconnected. Rejoin Room Support - A player can reconnect using the same Room ID if disconnected.
 Persistent Data Handling - Ensures no room conflicts or mismatches. Persistent Data Handling - Ensures no room conflicts or mismatches.
 Firebase-Based Matchmaking β Based on Firebase realtime database. Firebase-Based Matchmaking β Based on Firebase realtime database.
 Efficient Data Handling - Optimized to reduce Firebase bandwidth usage. Efficient Data Handling - Optimized to reduce Firebase bandwidth usage.
 Events & Functions for Easy Integration - Simplifies implementation in AI2 projects. Events & Functions for Easy Integration - Simplifies implementation in AI2 projects.
 Supports All AI2 Platforms - Compatible with AI2 distros. Supports All AI2 Platforms - Compatible with AI2 distros.
π₯ Why to use FireMatch & FireMatchRoom?
Using Firebase for real-time matchmaking can be complex, especially when handling race conditions, duplicate rooms, and player synchronization. FireMatch and FireMatchRoom eliminate these challenges by leveraging Firebase Transactions, ensuring seamless, conflict-free matchmaking.
 No Duplicate Rooms or Conflicts
 No Duplicate Rooms or Conflicts
- The extension uses Firebase Transactions to ensure that two players are matched only once, preventing duplicate room creation.
- Avoids race conditions, ensuring multiple players donβt get assigned to the same slot.
 Seamless, Auto-Synchronized Matchmaking
 Seamless, Auto-Synchronized Matchmaking
- FireMatch automatically pairs two players without the need for complex logic.
- FireMatchRoom ensures manual room-based matchmaking while preventing unwanted interruptions.
 No Complex Matchmaking Logic Required
 No Complex Matchmaking Logic Required
- Creating a custom matchmaking system from scratch can be tricky, requiring manual Firebase structuring, status tracking, and error handling.
- These extensions handle everything for you, so you only need to call simple functions to start matchmaking!
 Real-Time Data Exchange
 Real-Time Data Exchange
- Both extensions allow instant real-time data sharing between players, ideal for turn-based or interactive multiplayer games.
- Supports sending and receiving data events, ensuring smooth gameplay.
 Optimized for Performance
 Optimized for Performance
- Efficient Firebase database structuring reduces unnecessary reads/writes.
- Auto-cleanup of inactive rooms ensures no leftover data occupies the database.
 Specifications
 Specifications
 Size: 30.05 KB
 Size: 30.05 KB
 Version: 1.0
 Version: 1.0
 Minimum API Level: 7
 Minimum API Level: 7
 Updated On: 2025-02-15T18:30:00Z
 Updated On: 2025-02-15T18:30:00Z
 Help URL: Learn more
 Help URL: Learn more
 Built & documented using: FAST-CLI and Akshat Extension document generator
 Built & documented using: FAST-CLI and Akshat Extension document generator
 Multi-Components
 Multi-Components
 FireMatch
 FireMatch
Fire Match extension for 1v1 two player random matchmaking using Firebase real-time database.
Events:
FireMatch has total 3 events.
 OnMatchFound
 OnMatchFound

Event raised when a match (opponent) is found. Returns room ID and opponent ID.
| Parameter | Type | 
|---|---|
| roomID | text | 
| opponentID | text | 
 OnRoomDataChanged
 OnRoomDataChanged
Triggered when any data in the room is updated for both players.
| Parameter | Type | 
|---|---|
| roomID | text | 
| myData | text | 
| myGameData | text | 
| myStatus | text | 
| myRole | text | 
| opponentData | text | 
| opponentGameData | text | 
| opponentStatus | text | 
| opponentRole | text | 
| rawData | text | 
 OnError
 OnError

Triggered when an error occurs.
| Parameter | Type | 
|---|---|
| errorMessage | text | 
Methods:
FireMatch has total 12 methods.
 Initialise
 Initialise

Initializes fire match with firebase URL.
| Parameter | Type | 
|---|---|
| firebaseURL | text | 
 StartMatching
 StartMatching

Adds a player to the matchmaking queue. Here player data will be any data that will be exchanged with opponent for eg. name and avatar.
| Parameter | Type | 
|---|---|
| playerData | text | 
 RefreshRoom
 RefreshRoom

Refreshes the room data and triggers OnRoomDataChanged event with available data in the room.
 CancelMatching
 CancelMatching

Cancels matchmaking and removes the player from the queue.
 LeaveRoom
 LeaveRoom

Leaves the room by updating the player's status as left and stops getting room data changes.
 ClearRoom
 ClearRoom

Clears the room data and stops getting room data changes.
 StoreGameData
 StoreGameData

Stores game data for the player or opponent in the room.
| Parameter | Type | 
|---|---|
| gameData | text | 
| forOpponent | boolean | 
 UpdatePlayerStatus
 UpdatePlayerStatus

Updates the status for the player or opponent in the room.
| Parameter | Type | 
|---|---|
| status | text | 
| forOpponent | boolean | 
 RejoinRoom
 RejoinRoom

Rejoin an existing room using the room ID if the player was previously part of it.
| Parameter | Type | 
|---|---|
| roomId | text | 
 ResetRoom
 ResetRoom

Resets the room for a new fresh match.
 GeneratePlayerID
 GeneratePlayerID

Generates a random player ID either alphanumeric or numeric with specified length (minimum 4).
| Parameter | Type | 
|---|---|
| alphanumeric | boolean | 
| length | number | 
 IsPlayerInRoom
 IsPlayerInRoom

Checks if the player is already in a room.
Getters:
FireMatch has total 3 getter properties.
 GetPlayerID
 GetPlayerID

Gets the current player ID.
- Return type: text
 GetOpponentID
 GetOpponentID

Gets the opponent player ID.
- Return type: text
 GetRoomID
 GetRoomID

Gets the Room ID.
- Return type: text
 FireMatchRoom
 FireMatchRoom
Fire Match Room extension for room-based 1v1 two player matchmaking using Firebase real-time database.
Events:
FireMatchRoom has total 4 events.
 OnRoomCreated
 OnRoomCreated

Triggered when a room is successfully created. Returns room ID.
| Parameter | Type | 
|---|---|
| roomID | text | 
 OnOpponentJoined
 OnOpponentJoined

Triggered when an opponent joins the room.
| Parameter | Type | 
|---|---|
| roomID | text | 
| opponentID | text | 
 OnRoomDataChanged
 OnRoomDataChanged
Triggered when any data in the room changes.
| Parameter | Type | 
|---|---|
| roomID | text | 
| myData | text | 
| myGameData | text | 
| myStatus | text | 
| myRole | text | 
| opponentData | text | 
| opponentGameData | text | 
| opponentStatus | text | 
| opponentRole | text | 
| rawData | text | 
 OnError
 OnError

Triggered when an error occurs.
| Parameter | Type | 
|---|---|
| errorMessage | text | 
Methods:
FireMatchRoom has total 12 methods.
 Initialise
 Initialise

Initializes fire match room with firebase URL.
| Parameter | Type | 
|---|---|
| firebaseURL | text | 
 CreateRoom
 CreateRoom

Create a new room as host and receives a Room ID. Invite opponent to join the room with room ID
| Parameter | Type | 
|---|---|
| playerData | text | 
 JoinRoom
 JoinRoom

Player joins an existing room with given room ID.
| Parameter | Type | 
|---|---|
| roomID | text | 
| playerData | text | 
 RefreshRoom
 RefreshRoom

Refreshes the room data and triggers OnRoomDataChanged event with available data in the room.
 StoreGameData
 StoreGameData

Stores game data for the player or opponent in the room.
| Parameter | Type | 
|---|---|
| gameData | text | 
| forOpponent | boolean | 
 UpdatePlayerStatus
 UpdatePlayerStatus

Updates the status for the player or opponent in the room.
| Parameter | Type | 
|---|---|
| status | text | 
| forOpponent | boolean | 
 CancelRoom
 CancelRoom

Cancels the room only if no opponent has joined yet.
 LeaveRoom
 LeaveRoom

Leaves the room by updating the player's status as left and stops getting room data changes.
 ClearRoom
 ClearRoom

Clears the room data and stops getting room data changes.
 ResetRoom
 ResetRoom

Resets the room for a new fresh match.
 GeneratePlayerID
 GeneratePlayerID

Generates a random player ID either alphanumeric or numeric with specified length (minimum 4).
| Parameter | Type | 
|---|---|
| alphanumeric | boolean | 
| length | number | 
 IsPlayerInRoom
 IsPlayerInRoom

Checks if the player is already in a room.
Getters:
FireMatchRoom has total 3 getter properties.
 GetPlayerID
 GetPlayerID

Gets the current player ID.
- Return type: text
 GetOpponentID
 GetOpponentID

Gets the opponent player ID.
- Return type: text
 GetRoomID
 GetRoomID

Gets the Room ID.
- Return type: text
Test Quiz App based on FireMatch
Price: 10$
How to buy: PM me



