Package: igeFirebase
igeFirebaseC++ extension Firebase for 3D and 2D games.Before running this tutorial, you have to install igeFirebase[pip install igeFirebase]Available libraries- Admob [ Android / iOS ]
- Analytics [ Android / iOS ]
- Authentication [ Android / iOS / Desktop ]
- RemoteConfig [ Android / iOS / Desktop ]
- MLKit [ Android ]FunctionsFirebaseFirst, you need to import and init the firebase systemimport igeFirebase
 igeFirebase.init()Release it when everything is doneigeFirebase.release()Firebase Admobhttps://firebase.google.com/docs/admob/cpp/quick-startFirst, init the firebase admob systemFollowing the structure : "adMobApp","bannerSize", "gender", "childDirectedTreatment","keywords","birthday", "testDevicesIds"Tuple is supportedfb_admob = igeFirebase.admob()
 fb_admob.init(("ca-app-pub-1009273426450955~3020262852", "ca-app-pub-3940256099942544/6300978111", "ca-app-pub-3940256099942544/1033173712", "ca-app-pub-3940256099942544/2888167318"), (320, 50), 1, 1, ("game", "games", "gamess", "gamesss"), (12, 11, 1988), ("112F1C63CDDE8BAAEE287FDE3BA4C662",))Showing the adsBannerPositionMoveTo EnumTop of the screen, horizontally centered.kPositionTop = 0,Bottom of the screen, horizontally centered.kPositionBottom,Top-left corner of the screen.kPositionTopLeft,Top-right corner of the screen.kPositionTopRight,Bottom-left corner of the screen.kPositionBottomLeft,Bottom-right corner of the screen.kPositionBottomRight,fb_admob.showBanner()
 fb_admob.bannerMoveTo(0)
 fb_admob.bannerMoveTo(1)
 fb_admob.bannerMoveTo(2)
 fb_admob.bannerMoveTo(3)
 fb_admob.bannerMoveTo(4)
 fb_admob.bannerMoveTo(5)
 fb_admob.hideBanner()Interstitialfb_admob.showInterstitial()RewardedVideofb_admob.showRewardedVideo()
 fb_admob.pauseRewardedVideo()
 fb_admob.resumeRewardedVideo()Release it when everything is donefb_admob.release()Firebase Analyticshttps://firebase.google.com/docs/analytics/cpp/eventsFirst, init the firebase admob systemfb_analytics = igeFirebase.analytics()
 fb_analytics.init()Sending the eventsfb_analytics.setUserProperty("sign_up_method", "google")
 fb_analytics.setUserId("uber_user_510")
 fb_analytics.setCurrentScreen("Firebase Analytics C++ testapp", "testapp")

 fb_analytics.logEvent("login")
 fb_analytics.logEvent("progress", "percent", 0.4)
 fb_analytics.logEvent("post_score", "score", 42)
 fb_analytics.logEvent("join_group", "group_id", "spoon_welders")

 levelUpParameters = (("level", 5), ("character", "mrspoon"), ("hit_accuracy", 3.14))
 fb_analytics.logEvent("level_up", levelUpParameters)Release it when everything is donefb_analytics.release()Firebase Authenticationhttps://firebase.google.com/docs/auth/cpp/startFirst, init the firebase admob systemfb_auth = igeFirebase.auth()
 fb_auth.init()Authenticateprint('signInWithEmailAndPassword : ' + str(fb_auth.signInWithEmailAndPassword("doan.do@indigames.net", "doan.do")))
 print('isPlayerAuthenticated : ' + str(fb_auth.isPlayerAuthenticated()))

 print('signOut : ' + str(fb_auth.signOut()))
 print('isPlayerAuthenticated : ' + str(fb_auth.isPlayerAuthenticated()))

 print('registerWithEmailAndPassword : ' + str(fb_auth.registerWithEmailAndPassword("dodoan.it@gmail.com", "indigames")))
 print('isPlayerAuthenticated : ' + str(fb_auth.isPlayerAuthenticated()))Release it when everything is donefb_auth.release()Firebase MLKithttps://firebase.google.com/docs/ml-kitFirst, init the firebase mlkit systemfb_mlkit = igeFirebase.mlKit()
 fb_mlkit.init(mode)	// 1 = FAST ; 2 = ACCURATEAPIfb_mlkit.getCameraSize()				// result : tuple(w, h)
 fb_mlkit.getCameraData()				// result : list(unsigned char)
 fb_mlkit.getContours					// result : list(float)
 fb_mlkit.getLeftEyeOpenProbability		// Returns a value between 0.0 and 1.0 giving a probability that the face's left eye is open
 fb_mlkit.getRightEyeOpenProbability		// Returns a value between 0.0 and 1.0 giving a probability that the face's right eye is openRelease it when everything is donefb_mlkit.release()Firebase Firestorecallbackdef FirestoreGetCB(self, collection, field, value):
     print(self, 'get --- collection=' + collection + ' field=' + str(field) + ' value=' + str(value))

 def FirestoreSetCB(self, collection, field, value):
     print(self, 'set --- collection=' + collection + ' field=' + str(field) + ' value=' + str(value))

 def FirestoreDeleteCB(self, collection, field=None, value=None):
     print(self, 'del --- collection=' + collection + ' field=' + str(field) + ' value=' + str(value))getget data with Cloud Firestorefirestore().get(collection, field, callback)collection : stringfield : string or Nonecallback : function(collection, field, value)value : (string, int, double, dictionary)ExampleigeFirebase.firestore().get("users", "str_s", self.FirestoreGetCB)
 igeFirebase.firestore().get("users", "int_s", self.FirestoreGetCB)
 igeFirebase.firestore().get("users", "double_s", self.FirestoreGetCB)
 igeFirebase.firestore().get("users", "bool_s", self.FirestoreGetCB)
 igeFirebase.firestore().get("users", "map_s", self.FirestoreGetCB)
 igeFirebase.firestore().get("users", None, self.FirestoreGetCB)setadd data to Cloud Firestorefirestore().set(collection, field, value, callback, timestamp)collection : stringfield : stringvalue : (string, int, double, dictionary)callback : optional function(collection, field, result)timestamp : bool(optinal)ExampleigeFirebase.firestore().set("users", "str_s", "str_s", self.FirestoreSetCB)
 igeFirebase.firestore().set("users", "int_s", 1212, self.FirestoreSetCB)
 igeFirebase.firestore().set("users", "double_s", 12.1, self.FirestoreSetCB)
 igeFirebase.firestore().set("users", "bool_s", True, self.FirestoreSetCB)
 igeFirebase.firestore().set("users", "map_s", {"map_bool_s": True, "map_double_s": 12.1, "map_int_s": 1212, "map_str_s": "map_str_s"}, self.FirestoreSetCB)
 igeFirebase.firestore().set("users", "timestampValue", 10, self.FirestoreSetCB, timestamp=True)
 igeFirebase.firestore().set("users", "timestamp", None, self.FirestoreSetCB, timestamp=True)deletedelete data from Cloud Firestorefirestore().delete(collection, field, callback)collection : stringfield : string or Nonecallback : optional function(collection, field, result)ExampleigeFirebase.firestore().delete("users", "bool_s", self.FirestoreDeleteCB)
 igeFirebase.firestore().delete("users", None, self.FirestoreDeleteCB)Notes- Firebase C++ SDK desktop support is a beta feature so only a subset of features supported for now.
	- Authentication
	- Cloud Functions
	- Cloud Storage
	- Realtime Database
	- Remote Config
	- Firestore [TODO]Referencehttps://firebase.google.com/docs/cpp/setup?platform=ios