Skip to main content

igeFirebase

C++ 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 ]

Functions

Firebase

  • First, you need to import and init the firebase system
     import igeFirebase
     igeFirebase.init()
    
  • Release it when everything is done
     igeFirebase.release()
    

Firebase Admob

https://firebase.google.com/docs/admob/cpp/quick-start

  • First, init the firebase admob system

    • Following the structure : "adMobApp","bannerSize", "gender", "childDirectedTreatment","keywords","birthday", "testDevicesIds"
    • Tuple is supported
     fb_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 ads

    • Banner
    Position MoveTo Enum
    Top 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()
    
    • Interstitial
     fb_admob.showInterstitial()
    
    • RewardedVideo
     fb_admob.showRewardedVideo()
     fb_admob.pauseRewardedVideo()
     fb_admob.resumeRewardedVideo()
    
  • Release it when everything is done

     fb_admob.release()
    

Firebase Analytics

https://firebase.google.com/docs/analytics/cpp/events

  • First, init the firebase admob system
     fb_analytics = igeFirebase.analytics()
     fb_analytics.init()
    
  • Sending the events
     fb_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 done
     fb_analytics.release()
    

Firebase Authentication

https://firebase.google.com/docs/auth/cpp/start

  • First, init the firebase admob system
     fb_auth = igeFirebase.auth()
     fb_auth.init()
    
  • Authenticate
     print('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 done
     fb_auth.release()
    

Firebase MLKit

https://firebase.google.com/docs/ml-kit

  • First, init the firebase mlkit system
     fb_mlkit = igeFirebase.mlKit()
     fb_mlkit.init(mode)	// 1 = FAST ; 2 = ACCURATE
    
  • API
     fb_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 open
    
  • Release it when everything is done
     fb_mlkit.release()
    

Firebase Firestore

  • callback

     def 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))
    
  • get

    get data with Cloud Firestore

    firestore().get(collection, field, callback)

    collection : string

    field : string or None

    callback : function(collection, field, value)

    value : (string, int, double, dictionary)

    Example

     igeFirebase.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)
    
  • set

    add data to Cloud Firestore

    firestore().set(collection, field, value, callback, timestamp)

    collection : string

    field : string

    value : (string, int, double, dictionary)

    callback : optional function(collection, field, result)

    timestamp : bool(optinal)

    Example

     igeFirebase.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)
    
  • delete

    delete data from Cloud Firestore

    firestore().delete(collection, field, callback)

    collection : string

    field : string or None

    callback : optional function(collection, field, result)

    Example

     igeFirebase.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]

Reference

Release files for igeFirebase 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for igeFirebase 0.2.0
File Size Uploaded
igeFirebase-0.2.0.tar.gz 14.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for igeFirebase 0.2.0
File Interpreter ABI Platform
igeFirebase-0.2.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details

Total release size: 3.2 MB

Release files / igeFirebase-0.2.0.tar.gz

Download URL igeFirebase-0.2.0.tar.gz
Size 14.0 kB
Tags Source
SHA-256 checksum
How to use checksums
5d7e17d2afd7d4658e56791fe06b944876f73dc54fd19fb70f1826b5aa323c05
BLAKE2b-256 checksum
How to use checksums
83428e9e294cdc7f0d1af40ea7f646657001e0a64e84738584918fdfcbb7eead
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

Release files / igeFirebase-0.2.0-cp39-cp39-win_amd64.whl

Download URL igeFirebase-0.2.0-cp39-cp39-win_amd64.whl
Size 3.2 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
d3c5be9d2fcef8d86291e5d4672662295ddcc5020c3043618c02b5aebfbe638e
BLAKE2b-256 checksum
How to use checksums
fcaa7884bbf403688b491b9d338eca3b9fd68321d8cdb62b043410747d8b3143
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

1 release file

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

2 release files

0.0.33

2 release files

0.0.32

1 release file

0.0.31

1 release file

0.0.30

1 release file

0.0.29

1 release file

0.0.28

1 release file

0.0.27

1 release file

0.0.26

1 release file

0.0.25

1 release file

0.0.24

1 release file

0.0.23

1 release file

0.0.21

2 release files

0.0.20

3 release files

0.0.18

2 release files

0.0.17

2 release files

0.0.16

2 release files

0.0.15

2 release files

0.0.14

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

3 release files

0.0.3

3 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page