├── .editorconfig ├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── .travis.yml ├── .unoconfig ├── AdsExample ├── AdsExample.unoproj ├── AndroidImpl.uxl ├── MainView.ux └── google-services.json ├── AnalyticsExample ├── AnalyticsExample.unoproj ├── AndroidImpl.uxl ├── MainView.ux └── google-services.json ├── AuthExample ├── AndroidImpl.uxl ├── AuthExample.unoproj ├── MainView.js ├── MainView.ux └── google-services.json ├── DatabaseExample ├── AndroidImpl.uxl ├── DatabaseExample.unoproj ├── MainView.js ├── MainView.ux └── google-services-dummy.json ├── Fuse.JSON ├── JSON.unoproj ├── JavaObject.uno ├── LICENSE ├── ObjCObject.uno ├── ScriptingValue.uno ├── Test.uno └── Value.uno ├── LICENSE ├── NotificationExample ├── AndroidImpl.uxl ├── Foo.png ├── MainView.js ├── MainView.ux ├── NotifExample.unoproj ├── assets │ └── thing.png └── google-services.json ├── README.md ├── StorageExample ├── AndroidImpl.uxl ├── GoogleService-Info.plist ├── MainView.js ├── MainView.ux ├── StorageExample.unoproj └── google-services-dummy.json ├── TravisTest ├── AndroidImpl.uxl ├── Foo.png ├── GoogleService-Info.plist ├── MainView.ux ├── TravisTest.unoproj └── google-services.json ├── docs ├── app.jpeg ├── auth-quickstart.md ├── auth.md ├── database.md ├── index.md ├── push-notifications-android.md ├── storage.md └── wikiResources │ ├── 0.jpeg │ ├── 1.jpeg │ ├── 10.jpeg │ ├── 11.jpeg │ ├── 12.jpeg │ ├── 13.jpeg │ ├── 14.jpeg │ ├── 15.jpeg │ ├── 16.jpeg │ ├── 17.jpeg │ ├── 18.jpeg │ ├── 2.jpeg │ ├── 3.jpeg │ ├── 4.jpeg │ ├── 5.jpeg │ ├── 6.jpeg │ ├── 7.jpeg │ ├── 8.jpeg │ └── 9.jpeg └── src ├── Firebase.AdMob ├── AdMob.uno ├── AndroidImpl.uno ├── Firebase.AdMob.unoproj └── iOSImpl.uno ├── Firebase.Analytics ├── Analytics.uno ├── Firebase.Analytics.unoproj ├── JS.uno ├── android_const.js ├── kfirevent.js └── kfirparameter.js ├── Firebase.Authentication.Email ├── AndroidImpl.uno ├── Authentication.uno ├── Firebase.Authentication.Email.unoproj ├── JS.uno └── iOSImpl.uno ├── Firebase.Authentication.Facebook ├── AndroidImpl.uno ├── AndroidImpl.uxl ├── Authentication.uno ├── FacebookAuthentication.uno ├── Firebase.Authentication.Facebook.unoproj ├── JS.uno ├── iOSFacebookCallbacks.h ├── iOSFacebookCallbacks.mm ├── iOSImpl.uno └── iOSImpl.uxl ├── Firebase.Authentication.Google ├── AndroidImpl.uno ├── Authentication.uno ├── Firebase.Authentication.Google.unoproj ├── JS.uno ├── iOSCallbacks.h ├── iOSCallbacks.mm ├── iOSDelegateMethods.uxl └── iOSImpl.uno ├── Firebase.Authentication ├── AndroidImpl.uno ├── Authentication.uno ├── Firebase.Authentication.unoproj ├── JS.uno ├── UpdateUser.uno ├── iOSImpl.uno └── todo.md ├── Firebase.Database ├── Database.uno ├── Firebase.Database.unoproj └── JS.uno ├── Firebase.Notifications.Android ├── Android │ ├── Assets │ │ └── DefaultIcon.png │ ├── Impl.cpp.uxl │ ├── Impl.uno │ ├── PushNotificationIDService.java │ └── PushNotificationReceiver.java ├── Common.uno ├── Firebase.Notifications.Android.unoproj ├── JS.uno ├── iOSFirebaseNotificationCallbacks.h ├── iOSFirebaseNotificationCallbacks.mm └── iOSImpl.uno ├── Firebase.Storage ├── Firebase.Storage.unoproj ├── JS.uno └── Storage.uno └── Firebase ├── BundleFiles.java ├── Core.uno ├── Firebase.unoproj └── iOSHelpers.m /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*.{uno,ux,uxl,unoproj,unosln,js,java,mm,h,md}] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | trim_trailing_whitespace = true 8 | 9 | [*.{uno,ux,uxl,js,java,mm,h,md}] 10 | indent_style = space 11 | indent_size = 4 12 | 13 | [*.{unoproj,json,yml}] 14 | indent_style = space 15 | indent_size = 2 16 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | 5 | --- 6 | 7 | **Describe the bug** 8 | A clear and concise description of what the bug is. 9 | 10 | **To Reproduce** 11 | Steps to reproduce the behavior: 12 | 1. Go to '...' 13 | 2. Click on '....' 14 | 3. Scroll down to '....' 15 | 4. See error 16 | 17 | **Expected behavior** 18 | A clear and concise description of what you expected to happen. 19 | 20 | **Additional context** 21 | Add any other context about the problem here. 22 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | 5 | --- 6 | 7 | **Describe the solution you'd like** 8 | A clear and concise description of what you want to happen. 9 | 10 | **Describe alternatives you've considered** 11 | A clear and concise description of any alternative solutions or features you've considered. 12 | 13 | **Additional context** 14 | Add any other context or screenshots about the feature request here. 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | # 3 | # If you find yourself ignoring temporary files generated by your text editor 4 | # or operating system, you probably want to add a global ignore instead: 5 | # git config --global core.excludesfile ~/.gitignore_global 6 | 7 | # Ignore OS specific and temporary files. 8 | *.swp 9 | *.swo 10 | .DS_Store 11 | Thumbs.db 12 | 13 | # Rider files 14 | .idea/ 15 | *.iml 16 | 17 | # Generated files 18 | AssemblyInfo.cs 19 | *.deb 20 | *.tgz 21 | *.dll 22 | *.dll.config 23 | *.dylib 24 | *.exe 25 | *.lock 26 | *.opensdf 27 | *.msi 28 | *.nupkg 29 | *.pdb 30 | *.sdf 31 | /*.sln 32 | *.suo 33 | *.uduser 34 | *.upk 35 | *.packages 36 | *.user 37 | *.userprefs 38 | *.mdf 39 | *.ldf 40 | *.zip 41 | /Library/**/build/ 42 | /tests/**/build/ 43 | .uno/ 44 | .build/ 45 | .cache/ 46 | .stuff/ 47 | .unobuild 48 | bin/ 49 | obj/ 50 | /diagrams/ 51 | /release/ 52 | /upload/ 53 | 54 | # Sublime files 55 | *.sublime-project 56 | *.sublime-workspace 57 | 58 | # Misc 59 | AuthExample/FirebaseAuthenticationExample.unoproj 60 | AnalyticsExample/build/ 61 | AuthExample/build/ 62 | Test/* 63 | *.plist 64 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | os: osx 2 | 3 | install: 4 | - wget -q https://github.com/fuse-open/fuse-studio/releases/download/1.9.0/fuse_osx_1_9_0.pkg -O fuse-installer.pkg && sudo installer -pkg fuse-installer.pkg -target / 5 | 6 | jobs: 7 | include: 8 | - stage: build 9 | name: "Building DotNet" 10 | script: uno build TravisTest -tdotnet 11 | 12 | - stage: build 13 | name: "Building Android" 14 | osx_image: xcode9.3 15 | before_script: 16 | - printf '\ny' | fuse install android 17 | script: 18 | - uno build TravisTest -tAndroid -n=-quiet 19 | 20 | - stage: build 21 | name: "Building iOS" 22 | osx_image: xcode9.4 23 | script: 24 | - uno build TravisTest -tios -DCOCOAPODS -n=-sdk -n=iphonesimulator -n=-quiet -n=CODE_SIGN_IDENTITY="" -n=CODE_SIGNING_REQUIRED=NO -------------------------------------------------------------------------------- /.unoconfig: -------------------------------------------------------------------------------- 1 | Packages.SourcePaths += src 2 | -------------------------------------------------------------------------------- /AdsExample/AdsExample.unoproj: -------------------------------------------------------------------------------- 1 | { 2 | "Packages": [ 3 | "Fuse", 4 | "FuseJS" 5 | ], 6 | "Projects": [ 7 | "../src/Firebase/Firebase.unoproj", 8 | "../src/Firebase.AdMob/Firebase.AdMob.unoproj" 9 | ], 10 | "AdMob": { 11 | "TestDevices": [ 12 | "648F2582C7B37F0EBEB4DA80843A5583" 13 | ] 14 | }, 15 | "Includes": [ 16 | "*", 17 | "GoogleService-Info.plist:ObjCSource:iOS" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /AdsExample/AndroidImpl.uxl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /AdsExample/MainView.ux: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /AdsExample/google-services.json: -------------------------------------------------------------------------------- 1 | { 2 | "DUMMY_FILE": "REPLACE THIS FILE WITH YOUR google-services.json FILE" 3 | } 4 | -------------------------------------------------------------------------------- /AnalyticsExample/AnalyticsExample.unoproj: -------------------------------------------------------------------------------- 1 | { 2 | "Packages": [ 3 | "Fuse", 4 | "FuseJS" 5 | ], 6 | "Projects": [ 7 | "../src/Firebase/Firebase.unoproj", 8 | "../src/Firebase.Analytics/Firebase.Analytics.unoproj" 9 | ], 10 | "Includes": [ 11 | "*", 12 | "GoogleService-Info.plist:ObjCSource:iOS" 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /AnalyticsExample/AndroidImpl.uxl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /AnalyticsExample/MainView.ux: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | var FBAnalytics = require("Firebase/Analytics"); 5 | var kFIREvent = require('kfirevent.js'); 6 | var kFIRParameter = require('kfirparameter.js'); 7 | var FirebaseAnalytics = require('android_const.js'); 8 | 9 | module.exports.doIt = function() { 10 | console.log("clicking"); 11 | var p = {}; 12 | // p[kFIRParameter.ContentType] = "cont"; 13 | // p[kFIRParameter.ItemID] = 1; 14 | // FBAnalytics.logEvent(kFIREvent.SelectContent, p); 15 | p[FirebaseAnalytics.Param.CONTENT_TYPE] = "cont"; 16 | p[FirebaseAnalytics.Param.ITEM_ID] = 1; 17 | FBAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, p); 18 | }; 19 | 20 | 21 |