├── .editorconfig ├── .gitignore ├── .travis.yml ├── 3.0.md ├── 3.4.md ├── Gemfile ├── Gemfile.lock ├── README.md ├── Rakefile ├── app-ios ├── app_delegate.rb └── app_delegate_nanostore.rb ├── app-osx ├── app_delegate.rb └── menu.rb ├── app └── spec_setup.rb ├── lib ├── firebase-auth │ └── firebase_simple_login.rb ├── firebase │ ├── fir_auth.rb │ ├── fir_data_snapshot.rb │ ├── fir_database.rb │ ├── fir_database_query.rb │ ├── fir_database_reference.rb │ ├── firebase.rb │ ├── firebase_auth.rb │ ├── firebase_facebook_helper.rb │ ├── firebase_github_helper.rb │ ├── firebase_twitter_helper.rb │ └── version.rb ├── motion-firebase-auth.rb ├── motion-firebase.rb └── vendor │ └── Firebase.framework │ ├── Firebase │ ├── Headers │ ├── FAuthData.h │ ├── FAuthType.h │ ├── FConfig.h │ ├── FDataSnapshot.h │ ├── FEventType.h │ ├── FMutableData.h │ ├── FQuery.h │ ├── FTransactionResult.h │ ├── Firebase.h │ ├── FirebaseApp.h │ └── FirebaseServerValue.h │ ├── Info.plist │ ├── Modules │ └── module.modulemap │ └── NOTICE ├── motion-firebase.gemspec ├── resources ├── Credits.rtf └── Default-568h@2x.png ├── spec ├── dispatch_queue_spec.rb ├── firebase_spec.rb ├── query_spec.rb └── util_spec.rb └── vendor ├── Podfile.lock └── Pods ├── .build ├── GTMDefines.h ├── GTMNSData+zlib.h ├── libGoogleToolboxForMac.a └── libPods-RubyMotion.a ├── Firebase ├── Analytics │ └── Sources │ │ ├── Firebase.h │ │ └── module.modulemap └── README.md ├── FirebaseAnalytics └── Frameworks │ └── FirebaseAnalytics.framework │ ├── FirebaseAnalytics │ ├── Headers │ ├── FIRAnalytics+AppDelegate.h │ ├── FIRAnalytics.h │ ├── FIRAnalyticsConfiguration.h │ ├── FIRApp.h │ ├── FIRConfiguration.h │ ├── FIREventNames.h │ ├── FIROptions.h │ ├── FIRParameterNames.h │ ├── FIRUserPropertyNames.h │ └── FirebaseAnalytics.h │ └── Modules │ └── module.modulemap ├── FirebaseAuth ├── CHANGELOG.md ├── Frameworks │ └── frameworks │ │ └── FirebaseAuth.framework │ │ ├── FirebaseAuth │ │ ├── Headers │ │ ├── FIRAuth.h │ │ ├── FIRAuthCredential.h │ │ ├── FIRAuthErrors.h │ │ ├── FIREmailPasswordAuthProvider.h │ │ ├── FIRFacebookAuthProvider.h │ │ ├── FIRGitHubAuthProvider.h │ │ ├── FIRGoogleAuthProvider.h │ │ ├── FIRTwitterAuthProvider.h │ │ ├── FIRUser.h │ │ ├── FIRUserInfo.h │ │ └── FirebaseAuth.h │ │ └── Modules │ │ └── module.modulemap └── README.md ├── FirebaseCore └── Frameworks │ └── FirebaseCore.framework │ ├── FirebaseCore │ ├── Headers │ ├── FIRAnalyticsConfiguration.h │ ├── FIRApp.h │ ├── FIRConfiguration.h │ ├── FIRLoggerLevel.h │ ├── FIROptions.h │ └── FirebaseCore.h │ └── Modules │ └── module.modulemap ├── FirebaseDatabase └── Frameworks │ └── FirebaseDatabase.framework │ ├── FirebaseDatabase │ ├── Headers │ ├── FIRDataEventType.h │ ├── FIRDataSnapshot.h │ ├── FIRDatabase.h │ ├── FIRDatabaseQuery.h │ ├── FIRDatabaseReference.h │ ├── FIRMutableData.h │ ├── FIRServerValue.h │ ├── FIRTransactionResult.h │ └── FirebaseDatabase.h │ ├── Info.plist │ ├── Modules │ └── module.modulemap │ └── NOTICE ├── FirebaseInstanceID ├── CHANGELOG.md ├── Frameworks │ └── FirebaseInstanceID.framework │ │ ├── FirebaseInstanceID │ │ ├── Headers │ │ ├── FIRInstanceID.h │ │ └── FirebaseInstanceID.h │ │ └── Modules │ │ └── module.modulemap └── README.md ├── GoogleNetworkingUtilities └── Frameworks │ └── frameworks │ └── GoogleNetworkingUtilities.framework │ └── GoogleNetworkingUtilities ├── GoogleParsingUtilities └── Frameworks │ └── frameworks │ └── GoogleParsingUtilities.framework │ └── GoogleParsingUtilities ├── GoogleSymbolUtilities └── Frameworks │ └── frameworks │ └── GoogleSymbolUtilities.framework │ └── GoogleSymbolUtilities ├── GoogleToolboxForMac ├── Foundation │ ├── GTMNSData+zlib.h │ └── GTMNSData+zlib.m ├── GTMDefines.h ├── LICENSE └── README.md ├── GoogleUtilities └── Frameworks │ └── frameworks │ └── GoogleUtilities.framework │ └── GoogleUtilities ├── Headers ├── Private │ ├── Firebase │ │ └── Firebase.h │ └── GoogleToolboxForMac │ │ ├── GTMDefines.h │ │ └── GTMNSData+zlib.h └── Public │ ├── Firebase │ └── Firebase.h │ ├── FirebaseAnalytics │ └── FirebaseAnalytics │ │ ├── FIRAnalytics+AppDelegate.h │ │ ├── FIRAnalytics.h │ │ ├── FIRAnalyticsConfiguration.h │ │ ├── FIRApp.h │ │ ├── FIRConfiguration.h │ │ ├── FIREventNames.h │ │ ├── FIROptions.h │ │ ├── FIRParameterNames.h │ │ ├── FIRUserPropertyNames.h │ │ └── FirebaseAnalytics.h │ ├── FirebaseAuth │ └── FirebaseAuth │ │ ├── FIRAuth.h │ │ ├── FIRAuthCredential.h │ │ ├── FIRAuthErrors.h │ │ ├── FIREmailPasswordAuthProvider.h │ │ ├── FIRFacebookAuthProvider.h │ │ ├── FIRGitHubAuthProvider.h │ │ ├── FIRGoogleAuthProvider.h │ │ ├── FIRTwitterAuthProvider.h │ │ ├── FIRUser.h │ │ ├── FIRUserInfo.h │ │ └── FirebaseAuth.h │ ├── FirebaseCore │ └── FirebaseCore │ │ ├── FIRAnalyticsConfiguration.h │ │ ├── FIRApp.h │ │ ├── FIRConfiguration.h │ │ ├── FIRLoggerLevel.h │ │ ├── FIROptions.h │ │ └── FirebaseCore.h │ ├── FirebaseDatabase │ └── FirebaseDatabase │ │ ├── FIRDataEventType.h │ │ ├── FIRDataSnapshot.h │ │ ├── FIRDatabase.h │ │ ├── FIRDatabaseQuery.h │ │ ├── FIRDatabaseReference.h │ │ ├── FIRMutableData.h │ │ ├── FIRServerValue.h │ │ ├── FIRTransactionResult.h │ │ └── FirebaseDatabase.h │ ├── FirebaseInstanceID │ └── FirebaseInstanceID │ │ ├── FIRInstanceID.h │ │ └── FirebaseInstanceID.h │ ├── GoogleToolboxForMac │ ├── GTMDefines.h │ └── GTMNSData+zlib.h │ └── ____GoogleToolboxForMac-prefix.h ├── Manifest.lock ├── Pods.xcodeproj ├── project.pbxproj └── xcuserdata │ └── Pick6.xcuserdatad │ └── xcschemes │ ├── GoogleToolboxForMac.xcscheme │ ├── Pods-RubyMotion.xcscheme │ └── xcschememanagement.plist ├── Target Support Files ├── GoogleToolboxForMac │ ├── GoogleToolboxForMac-dummy.m │ ├── GoogleToolboxForMac-prefix.pch │ └── GoogleToolboxForMac.xcconfig └── Pods-RubyMotion │ ├── Pods-RubyMotion-acknowledgements.markdown │ ├── Pods-RubyMotion-acknowledgements.plist │ ├── Pods-RubyMotion-dummy.m │ ├── Pods-RubyMotion-frameworks.sh │ ├── Pods-RubyMotion-resources.sh │ ├── Pods-RubyMotion.debug.xcconfig │ └── Pods-RubyMotion.release.xcconfig └── build-iPhoneSimulator └── libGoogleToolboxForMac.a /.editorconfig: -------------------------------------------------------------------------------- 1 | 2 | [*] 3 | indent_style = space 4 | indent_size = 2 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .repl_history 2 | build 3 | tags 4 | app/pixate_code.rb 5 | resources/*.nib 6 | resources/*.momd 7 | resources/*.storyboardc 8 | .DS_Store 9 | nbproject 10 | .redcar 11 | #*# 12 | *~ 13 | *.sw[po] 14 | .eprj 15 | .sass-cache 16 | .idea 17 | *.gem 18 | /.dat* 19 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: objective-c 2 | before_install: rvm use 1.9.3 3 | before_script: sudo chown -R travis ~/Library/RubyMotion 4 | -------------------------------------------------------------------------------- /3.0.md: -------------------------------------------------------------------------------- 1 | ###### Checklist: 2 | 3 | [ ] Set a global URL 4 | [ ] `connected_state` => `connected?` 5 | [ ] `auth` no longer calls `cancel` block 6 | [ ] `unauth` => `logout` 7 | [ ] `auth_state` => `authenticated?` 8 | [ ] `on_auth` => `authenticated?` 9 | [ ] FirebaseSimpleLogin is GONE 10 | 11 | ###### Added the ability to set a global URL 12 | 13 | `Firebase.url = 'your-app-name'` 14 | 15 | This is required if you want to use the static methods like `Firebase.connected?` 16 | 17 | ###### `connected_state` => `connected?` 18 | 19 | `connected_state` is still around, but it has been improved and renamed to 20 | `connected?`, which accepts a block. Instead of a snapshot, this block will 21 | receive a boolean (`is_connected`). 22 | 23 | ###### Firebase.authenticate 24 | 25 | This method used to call `authWithCredential(withCompletionBlock:withCancelBlock:)`, 26 | but that method has been deprecated in favor of `authWithCustomToken(withCompletionBlock:)`. 27 | 28 | The new method uses just one block. You should update your code to accept 29 | `error` and `auth_data` arguments, and use `Firebase.authenticated?` to monitor 30 | authenticated state. 31 | 32 | ```ruby 33 | Firebase.authenticate(token) { |error, auth_data| } 34 | ``` 35 | 36 | ###### Firebase.unauth 37 | 38 | Is now `Firebase.logout` 39 | 40 | ###### Firebase.auth_state 41 | 42 | Is gone, in favor of `Firebase.authenticated?`. You can no longer get a 43 | Firebase ref that points to the auth state directly. 44 | 45 | ###### Firebase.on_auth 46 | 47 | Is gone, in favor of `Firebase.authenticated?` 48 | 49 | ###### FirebaseSimpleLogin is GONE 50 | 51 | No more `motion-firebase-auth` at all. Porting is pretty easy, though. 52 | 53 | Before, you had to get create a FirebaseSimpleLogin object 54 | 55 | ```ruby 56 | auth = FirebaseSimpleLogin.new(firebase_ref) 57 | auth.login(email: email, password: password) 58 | auth.logout 59 | ``` 60 | 61 | Now you just use the `firebase_ref` directly, and it's encouraged to use the 62 | static version of these methods. 63 | 64 | ```ruby 65 | Firebase.login(email: email, password: password) 66 | Firebase.logout 67 | ``` 68 | 69 | Many of the methods like `create`, etc are appended with `_user`, and again the 70 | static version is encouraged. 71 | 72 | ```ruby 73 | # FirebaseSimpleLogin methods: 74 | auth.create(email:, password:) 75 | auth.remove(email:, password:) { |error| } 76 | auth.login(email:, password:) { |error, user| } 77 | auth.update(email:, old_password:, new_password:) { |error, success| } 78 | auth.send_password_reset(email:) 79 | 80 | # are now: 81 | Firebase.create_user_and_login(email:, password:) { |error, auth_data| } 82 | Firebase.create_user(email:, password:) { |error| } # user is not logged in! 83 | Firebase.remove_user(email:, password:) { |error| } 84 | Firebase.login(email:, password:) { |error, auth_data| } 85 | Firebase.update_user(email:, old_password:, new_password:) { |error| } 86 | Firebase.send_password_reset(email:) { |error| } 87 | 88 | # this one is new: 89 | Firebase.login_anonymously { |error, auth_data| } 90 | ``` 91 | 92 | Removed methods: 93 | 94 | ```ruby 95 | auth.check { |error, user| } 96 | Firebase.authenticated? { |is_authenticated| } # does the same thing, pretty much 97 | ``` 98 | 99 | The Facebook and Twitter methods are different, you'll need to use 100 | `open_facebook_session` and `open_twitter_session`. The old methods 101 | (`login_to_facebook`) did a lot more, but at the sacrifice that you lost some 102 | control of your app. The new methods are more hands off. 103 | -------------------------------------------------------------------------------- /3.4.md: -------------------------------------------------------------------------------- 1 | ###### Checklist: 2 | 3 | - [x] Use with new Google SDK 4 | - [ ] Test login (facebook, github, twitter) 5 | - [ ] Fix demo app 6 | 7 | 8 | 9 | ## Installation 10 | 11 | Add this line to your application's Gemfile: 12 | 13 | gem 'motion-firebase', github: 'soyoh/motion-firebase', branch: 'google-sdk' 14 | 15 | And then execute: 16 | 17 | $ bundle 18 | 19 | To install the required Pods execute: 20 | 21 | $ rake pod:install 22 | 23 | ## Configuration 24 | 25 | 1. Sign for an account in [Firebase](https://www.firebase.com/) 26 | 27 | 2. Create the project, and export the file `GoogleService-info.plis` and place it inside your `Resources` directory 28 | This will load the needed information for the Firebase pods. 29 | 30 | 3. Place this inside your app_delegate.rb 31 | 32 | ```ruby 33 | Firebase.configure 34 | ``` 35 | 36 | ### Database queries 37 | 38 | ```ruby 39 | firebase = Firebase.database(path: 'posts') 40 | ``` 41 | 42 | `path` is optional. you dont have to specify the full URL to get, just to provide the path is sufficient 43 | for example: messages, posts, post/1, users/pepito 44 | 45 | ### Auth 46 | ```ruby 47 | Firebase.auth 48 | 49 | Firebase.auth.authenticated? 50 | Firebase.auth.logout 51 | ``` 52 | 53 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'rake' 4 | gem "motion-cocoapods" 5 | gem 'sugarcube', '~> 2.0', require: 'sugarcube-classic' 6 | gem 'motion-firebase', :path => '.', require: [ 7 | 'motion-firebase', 8 | ] 9 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | PATH 2 | remote: . 3 | specs: 4 | motion-firebase (3.4.2) 5 | 6 | GEM 7 | remote: https://rubygems.org/ 8 | specs: 9 | CFPropertyList (2.3.5) 10 | activesupport (4.2.8) 11 | i18n (~> 0.7) 12 | minitest (~> 5.1) 13 | thread_safe (~> 0.3, >= 0.3.4) 14 | tzinfo (~> 1.1) 15 | claide (1.0.1) 16 | cocoapods (1.2.1) 17 | activesupport (>= 4.0.2, < 5) 18 | claide (>= 1.0.1, < 2.0) 19 | cocoapods-core (= 1.2.1) 20 | cocoapods-deintegrate (>= 1.0.1, < 2.0) 21 | cocoapods-downloader (>= 1.1.3, < 2.0) 22 | cocoapods-plugins (>= 1.0.0, < 2.0) 23 | cocoapods-search (>= 1.0.0, < 2.0) 24 | cocoapods-stats (>= 1.0.0, < 2.0) 25 | cocoapods-trunk (>= 1.2.0, < 2.0) 26 | cocoapods-try (>= 1.1.0, < 2.0) 27 | colored2 (~> 3.1) 28 | escape (~> 0.0.4) 29 | fourflusher (~> 2.0.1) 30 | gh_inspector (~> 1.0) 31 | molinillo (~> 0.5.7) 32 | nap (~> 1.0) 33 | ruby-macho (~> 1.1) 34 | xcodeproj (>= 1.4.4, < 2.0) 35 | cocoapods-core (1.2.1) 36 | activesupport (>= 4.0.2, < 5) 37 | fuzzy_match (~> 2.0.4) 38 | nap (~> 1.0) 39 | cocoapods-deintegrate (1.0.1) 40 | cocoapods-downloader (1.1.3) 41 | cocoapods-plugins (1.0.0) 42 | nap 43 | cocoapods-search (1.0.0) 44 | cocoapods-stats (1.0.0) 45 | cocoapods-trunk (1.2.0) 46 | nap (>= 0.8, < 2.0) 47 | netrc (= 0.7.8) 48 | cocoapods-try (1.1.0) 49 | colored2 (3.1.2) 50 | escape (0.0.4) 51 | fourflusher (2.0.1) 52 | fuzzy_match (2.0.4) 53 | gh_inspector (1.0.3) 54 | i18n (0.8.1) 55 | minitest (5.10.2) 56 | molinillo (0.5.7) 57 | motion-cocoapods (1.9.0) 58 | cocoapods (>= 1.0.0) 59 | nanaimo (0.2.3) 60 | nap (1.1.0) 61 | netrc (0.7.8) 62 | rake (10.0.3) 63 | ruby-macho (1.1.0) 64 | sugarcube (2.0.1) 65 | thread_safe (0.3.6) 66 | tzinfo (1.2.3) 67 | thread_safe (~> 0.1) 68 | xcodeproj (1.4.4) 69 | CFPropertyList (~> 2.3.3) 70 | claide (>= 1.0.1, < 2.0) 71 | colored2 (~> 3.1) 72 | nanaimo (~> 0.2.3) 73 | 74 | PLATFORMS 75 | ruby 76 | 77 | DEPENDENCIES 78 | motion-cocoapods 79 | motion-firebase! 80 | rake 81 | sugarcube (~> 2.0) 82 | 83 | BUNDLED WITH 84 | 1.12.5 85 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | $:.unshift("/Library/RubyMotion/lib") 3 | 4 | platform = ENV.fetch('platform', 'ios') 5 | if platform == 'ios' 6 | require 'motion/project/template/ios' 7 | elsif platform == 'osx' 8 | require 'motion/project/template/osx' 9 | end 10 | 11 | require 'bundler' 12 | Bundler.require 13 | 14 | 15 | Motion::Project::App.setup do |app| 16 | # Use `rake config' to see complete project settings. 17 | app.name = 'motion-firebase' 18 | 19 | app.files.concat Dir.glob("app-#{platform}/**/*") 20 | end 21 | -------------------------------------------------------------------------------- /app-ios/app_delegate.rb: -------------------------------------------------------------------------------- 1 | FirechatNS = 'https://firechat-ios.firebaseio-demo.com/' 2 | 3 | class AppDelegate 4 | def application(application, didFinishLaunchingWithOptions:launchOptions) 5 | return true if RUBYMOTION_ENV == 'test' 6 | 7 | @window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds) 8 | ctlr = MyController.new 9 | first = UINavigationController.alloc.initWithRootViewController(ctlr) 10 | @window.rootViewController = first 11 | @window.makeKeyAndVisible 12 | 13 | true 14 | end 15 | end 16 | 17 | 18 | class MyController < UITableViewController 19 | 20 | attr_accessor :chat 21 | attr_accessor :firebase 22 | 23 | attr_accessor :textField 24 | 25 | def viewDidLoad 26 | super 27 | 28 | # Pick a random number between 1-1000 for our username. 29 | self.title = "Guest0x#{(rand * 1000).round.to_s(16).upcase}" 30 | 31 | # Initialize array that will store chat messages. 32 | self.chat = [] 33 | 34 | self.tableView.rowHeight = UITableViewAutomaticDimension 35 | self.tableView.estimatedRowHeight = 44.0 36 | self.tableView.dataSource = tableView.delegate = self 37 | 38 | self.textField = UITextField.alloc.initWithFrame([[10, 0], [CGRectGetWidth(self.tableView.bounds) - 2*10, 44]]) 39 | self.textField.placeholder = 'Type a new item, then press enter' 40 | self.textField.delegate = self 41 | self.tableView.tableHeaderView = self.textField 42 | 43 | setupFirebase 44 | end 45 | 46 | def setupFirebase 47 | # Initialize the root of our Firebase namespace. 48 | Firebase.url = FirechatNS 49 | self.firebase = Firebase.new 50 | 51 | self.firebase.on(:added) do |snapshot| 52 | # Add the chat message to the array. 53 | self.chat << snapshot.value.merge({'key' => snapshot.key}) 54 | # Reload the table view so the new message will show up. 55 | self.tableView.reloadData 56 | end 57 | 58 | self.firebase.on(:changed) do |snapshot| 59 | index = self.chat.index {|chat| chat['key'] == snapshot.key} 60 | self.chat[index] = snapshot.value.merge({'key' => snapshot.key}) if index 61 | self.tableView.reloadData 62 | end 63 | 64 | self.firebase.on(:removed) do |snapshot| 65 | self.chat.delete_if {|chat| chat['key'] == snapshot.key} 66 | self.tableView.reloadData 67 | end 68 | end 69 | 70 | 71 | # This method is called when the user enters text in the text field. 72 | # We add the chat message to our Firebase. 73 | def textFieldShouldReturn(text_field) 74 | text_field.resignFirstResponder 75 | 76 | # This will also add the message to our local array self.chat because 77 | # the FEventTypeChildAdded event will be immediately fired. 78 | self.firebase << {'name' => self.title, 'text' => text_field.text} 79 | 80 | text_field.text = '' 81 | false 82 | end 83 | 84 | def numberOfSectionsInTableView(tableView) 85 | 1 86 | end 87 | 88 | def tableView(tableView, numberOfRowsInSection:section) 89 | self.chat.length 90 | end 91 | 92 | CellIdentifier = 'Cell' 93 | def tableView(tableView, cellForRowAtIndexPath:index_path) 94 | cell = tableView.dequeueReusableCellWithIdentifier(CellIdentifier) 95 | 96 | unless cell 97 | cell = UITableViewCell.alloc.initWithStyle(UITableViewCellStyleSubtitle, reuseIdentifier:CellIdentifier) 98 | end 99 | 100 | chatMessage = self.chat[index_path.row] 101 | 102 | cell.textLabel.text = chatMessage['text'] 103 | cell.detailTextLabel.text = chatMessage['name'] 104 | 105 | return cell 106 | end 107 | 108 | def tableView(tableView, editActionsForRowAtIndexPath:indexPath) 109 | deleteAction = UITableViewRowAction.rowActionWithStyle(UITableViewRowActionStyleDestructive, title:'Delete', handler:lambda { |action, indexPath| 110 | tableView.editing = false 111 | 112 | chat = self.chat[indexPath.row] 113 | self.firebase[chat['key']].clear! 114 | self.chat.delete_at(indexPath.row) 115 | 116 | tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation:UITableViewRowAnimationFade) 117 | }) 118 | 119 | [deleteAction] 120 | end 121 | 122 | def tableView(tableView, commitEditingStyle:editingStyle, forRowAtIndexPath:indexPath) 123 | # required by tableView:editActionsForRowAtIndexPath: 124 | end 125 | end 126 | 127 | 128 | 129 | -------------------------------------------------------------------------------- /app-ios/app_delegate_nanostore.rb: -------------------------------------------------------------------------------- 1 | FirechatNS = 'https://firechat-ios.firebaseio-demo.com/' 2 | 3 | class AppDelegate 4 | def application(application, didFinishLaunchingWithOptions:launchOptions) 5 | return true if RUBYMOTION_ENV == 'test' 6 | 7 | @window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds) 8 | ctlr = MyController.new 9 | first = UINavigationController.alloc.initWithRootViewController(ctlr) 10 | @window.rootViewController = first 11 | @window.makeKeyAndVisible 12 | 13 | true 14 | end 15 | end 16 | 17 | 18 | class MyController < UITableViewController 19 | 20 | attr_accessor :firebase 21 | attr_accessor :chat 22 | 23 | attr_accessor :textField 24 | 25 | def viewDidLoad 26 | super 27 | 28 | setupNanostore 29 | 30 | # Pick a random number between 1-1000 for our username. 31 | self.title = "Guest0x#{(rand * 1000).round.to_s(16).upcase}" 32 | 33 | self.tableView.rowHeight = UITableViewAutomaticDimension 34 | self.tableView.estimatedRowHeight = 44.0 35 | self.tableView.dataSource = tableView.delegate = self 36 | 37 | self.textField = UITextField.alloc.initWithFrame([[10, 0], [CGRectGetWidth(self.tableView.bounds) - 2*10, 44]]) 38 | self.textField.placeholder = 'Type a new item, then press enter' 39 | self.textField.delegate = self 40 | self.tableView.tableHeaderView = self.textField 41 | 42 | setupFirebase 43 | end 44 | 45 | def viewReload 46 | # When we are called, some Firebase event has occurred, so we clear the cache. 47 | self.chat = nil 48 | 49 | # Reload the table view so that new, changed or deleted messages will show up. 50 | # We should really buffer updates to keep the UI snappy. 51 | self.tableView.reloadData 52 | end 53 | 54 | def setupNanostore 55 | path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, true).first 56 | NanoStore.shared_store = NanoStore.store(:file, "#{path}/nano.db") 57 | 58 | # Uncomment to start with a clean store 59 | #NanoStore.shared_store.removeAllObjectsFromStoreAndReturnError(nil) 60 | end 61 | 62 | def setupFirebase 63 | # Initialize the root of our Firebase namespace. 64 | Firebase.url = FirechatNS 65 | self.firebase = Firebase.new 66 | 67 | self.firebase.on(:added) do |snapshot| 68 | # Add the chat message to the nano store 69 | NanoStore.addOrUpdateObjectFromDictionary(snapshot.value, key:snapshot.key) 70 | viewReload 71 | end 72 | 73 | self.firebase.on(:changed) do |snapshot| 74 | # Update the chat message with the new value(s) 75 | NanoStore.updateObjectWithDictionary(snapshot.value, key:snapshot.key) 76 | viewReload 77 | end 78 | 79 | self.firebase.on(:removed) do |snapshot| 80 | # Remove the chat message from the nano store 81 | NanoStore.removeObjectWithKey(snapshot.key) 82 | viewReload 83 | end 84 | 85 | # TODO: Remove chat messages that were deleted from Firebase 86 | # since the previous run of this app 87 | end 88 | 89 | # This method is called when the user enters text in the text field. 90 | # We add the chat message to our Firebase. 91 | def textFieldShouldReturn(text_field) 92 | # This will also add the message to the nano store because 93 | # the FEventTypeChildAdded event will be immediately fired. 94 | self.firebase << {'name' => self.title, 'text' => text_field.text} 95 | 96 | text_field.resignFirstResponder 97 | text_field.text = '' 98 | true 99 | end 100 | 101 | def chat 102 | # Return and cache the chat messages on first call. 103 | # When @chat is set to nil, the nano store will be queried again, 104 | # for example when new data has arrived from Firebase 105 | @chat ||= NanoStore.objects 106 | end 107 | 108 | def numberOfSectionsInTableView(tableView) 109 | 1 110 | end 111 | 112 | def tableView(tableView, numberOfRowsInSection:section) 113 | NanoStore.count 114 | end 115 | 116 | CellIdentifier = 'Cell' 117 | def tableView(tableView, cellForRowAtIndexPath:indexPath) 118 | cell = tableView.dequeueReusableCellWithIdentifier(CellIdentifier) 119 | 120 | unless cell 121 | cell = UITableViewCell.alloc.initWithStyle(UITableViewCellStyleSubtitle, reuseIdentifier:CellIdentifier) 122 | end 123 | 124 | chatMessage = self.chat[indexPath.row] 125 | 126 | cell.textLabel.text = chatMessage['text'] 127 | cell.detailTextLabel.text = chatMessage['name'] 128 | 129 | return cell 130 | end 131 | 132 | def tableView(tableView, editActionsForRowAtIndexPath:indexPath) 133 | deleteAction = UITableViewRowAction.rowActionWithStyle(UITableViewRowActionStyleDestructive, title:'Delete', handler:lambda { |action, indexPath| 134 | # This will also remove the message from the nano store because 135 | # the FEventTypeChildRemoved event will be immediately fired. 136 | chatMessage = self.chat[indexPath.row] 137 | self.firebase[chatMessage.key].clear! 138 | 139 | # Leave editing mode after the action is performed 140 | tableView.editing = false 141 | }) 142 | 143 | [deleteAction] 144 | end 145 | 146 | def tableView(tableView, commitEditingStyle:editingStyle, forRowAtIndexPath:indexPath) 147 | # required by tableView:editActionsForRowAtIndexPath: 148 | end 149 | end 150 | 151 | class NanoStore 152 | def self.count 153 | shared_store.countOfObjectsOfClassNamed(NSFNanoObject) 154 | end 155 | 156 | def self.objects 157 | NSLog "Reloading cache" 158 | sortByText = NSFNanoSortDescriptor.sortDescriptorWithAttribute('text', ascending:true) 159 | shared_store.objectsOfClassNamed(NSFNanoObject, usingSortDescriptors:[sortByText]) 160 | end 161 | 162 | def self.objectForKey(key) 163 | shared_store.objectsWithKeysInArray([key]).first 164 | end 165 | 166 | def self.addObjectFromDictionary(dict, key:key) 167 | shared_store.addObject(NSFNanoObject.nanoObjectWithDictionary(dict, key:key), error:nil) 168 | end 169 | 170 | def self.addOrUpdateObjectFromDictionary(dict, key:key) 171 | object = objectForKey(key) 172 | 173 | if object 174 | # We should have a more subtle merging strategy, for example based on timestamps. 175 | NSLog "- merging: #{key}" 176 | object.addEntriesFromDictionary(dict) 177 | object.saveStoreAndReturnError(nil) 178 | else 179 | NSLog "- adding: #{key}" 180 | addObjectFromDictionary(dict, key:key) 181 | end 182 | end 183 | 184 | def self.updateObjectWithDictionary(dict, key:key) 185 | object = objectForKey(key) 186 | 187 | if object 188 | NSLog "- updating: #{key}" 189 | object.addEntriesFromDictionary(dict) 190 | object.saveStoreAndReturnError(nil) 191 | end 192 | end 193 | 194 | def self.removeObjectWithKey(key) 195 | NSLog "- removing: #{key}" 196 | shared_store.removeObjectsWithKeysInArray([key], error:nil) 197 | end 198 | end 199 | -------------------------------------------------------------------------------- /app-osx/app_delegate.rb: -------------------------------------------------------------------------------- 1 | FirechatNS = 'https://firechat-ios.firebaseio-demo.com/' 2 | 3 | class AppDelegate 4 | def applicationDidFinishLaunching(notification) 5 | return true if RUBYMOTION_ENV == 'test' 6 | 7 | buildMenu 8 | buildWindow 9 | end 10 | 11 | def buildWindow 12 | @mainWindow = NSWindow.alloc.initWithContentRect([[240, 180], [480, 360]], 13 | styleMask: NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask|NSResizableWindowMask, 14 | backing: NSBackingStoreBuffered, 15 | defer: false) 16 | @mainWindow.title = NSBundle.mainBundle.infoDictionary['CFBundleName'] 17 | @mainWindow.orderFrontRegardless 18 | end 19 | end 20 | 21 | 22 | -------------------------------------------------------------------------------- /app-osx/menu.rb: -------------------------------------------------------------------------------- 1 | class AppDelegate 2 | def buildMenu 3 | @mainMenu = NSMenu.new 4 | 5 | appName = NSBundle.mainBundle.infoDictionary['CFBundleName'] 6 | addMenu(appName) do 7 | addItemWithTitle("About #{appName}", action: 'orderFrontStandardAboutPanel:', keyEquivalent: '') 8 | addItem(NSMenuItem.separatorItem) 9 | addItemWithTitle('Preferences', action: 'openPreferences:', keyEquivalent: ',') 10 | addItem(NSMenuItem.separatorItem) 11 | servicesItem = addItemWithTitle('Services', action: nil, keyEquivalent: '') 12 | NSApp.servicesMenu = servicesItem.submenu = NSMenu.new 13 | addItem(NSMenuItem.separatorItem) 14 | addItemWithTitle("Hide #{appName}", action: 'hide:', keyEquivalent: 'h') 15 | item = addItemWithTitle('Hide Others', action: 'hideOtherApplications:', keyEquivalent: 'H') 16 | item.keyEquivalentModifierMask = NSCommandKeyMask|NSAlternateKeyMask 17 | addItemWithTitle('Show All', action: 'unhideAllApplications:', keyEquivalent: '') 18 | addItem(NSMenuItem.separatorItem) 19 | addItemWithTitle("Quit #{appName}", action: 'terminate:', keyEquivalent: 'q') 20 | end 21 | 22 | addMenu('File') do 23 | addItemWithTitle('New', action: 'newDocument:', keyEquivalent: 'n') 24 | addItemWithTitle('Open…', action: 'openDocument:', keyEquivalent: 'o') 25 | addItem(NSMenuItem.separatorItem) 26 | addItemWithTitle('Close', action: 'performClose:', keyEquivalent: 'w') 27 | addItemWithTitle('Save…', action: 'saveDocument:', keyEquivalent: 's') 28 | addItemWithTitle('Revert to Saved', action: 'revertDocumentToSaved:', keyEquivalent: '') 29 | addItem(NSMenuItem.separatorItem) 30 | addItemWithTitle('Page Setup…', action: 'runPageLayout:', keyEquivalent: 'P') 31 | addItemWithTitle('Print…', action: 'printDocument:', keyEquivalent: 'p') 32 | end 33 | 34 | addMenu('Edit') do 35 | addItemWithTitle('Undo', action: 'undo:', keyEquivalent: 'z') 36 | addItemWithTitle('Redo', action: 'redo:', keyEquivalent: 'Z') 37 | addItem(NSMenuItem.separatorItem) 38 | addItemWithTitle('Cut', action: 'cut:', keyEquivalent: 'x') 39 | addItemWithTitle('Copy', action: 'copy:', keyEquivalent: 'c') 40 | addItemWithTitle('Paste', action: 'paste:', keyEquivalent: 'v') 41 | item = addItemWithTitle('Paste and Match Style', action: 'pasteAsPlainText:', keyEquivalent: 'V') 42 | item.keyEquivalentModifierMask = NSCommandKeyMask|NSAlternateKeyMask 43 | addItemWithTitle('Delete', action: 'delete:', keyEquivalent: '') 44 | addItemWithTitle('Select All', action: 'selectAll:', keyEquivalent: 'a') 45 | end 46 | 47 | fontMenu = createMenu('Font') do 48 | addItemWithTitle('Show Fonts', action: 'orderFrontFontPanel:', keyEquivalent: 't') 49 | addItemWithTitle('Bold', action: 'addFontTrait:', keyEquivalent: 'b') 50 | addItemWithTitle('Italic', action: 'addFontTrait:', keyEquivalent: 'b') 51 | addItemWithTitle('Underline', action: 'underline:', keyEquivalent: 'u') 52 | addItem(NSMenuItem.separatorItem) 53 | addItemWithTitle('Bigger', action: 'modifyFont:', keyEquivalent: '+') 54 | addItemWithTitle('Smaller', action: 'modifyFont:', keyEquivalent: '-') 55 | end 56 | 57 | textMenu = createMenu('Text') do 58 | addItemWithTitle('Align Left', action: 'alignLeft:', keyEquivalent: '{') 59 | addItemWithTitle('Center', action: 'alignCenter:', keyEquivalent: '|') 60 | addItemWithTitle('Justify', action: 'alignJustified:', keyEquivalent: '') 61 | addItemWithTitle('Align Right', action: 'alignRight:', keyEquivalent: '}') 62 | addItem(NSMenuItem.separatorItem) 63 | addItemWithTitle('Show Ruler', action: 'toggleRuler:', keyEquivalent: '') 64 | addItemWithTitle('Copy Ruler', action: 'copyRuler:', keyEquivalent: 'c') 65 | addItemWithTitle('Paste Ruler', action: 'pasteRuler:', keyEquivalent: 'v') 66 | end 67 | 68 | addMenu('Format') do 69 | addItem fontMenu 70 | addItem textMenu 71 | end 72 | 73 | addMenu('View') do 74 | item = addItemWithTitle('Show Toolbar', action: 'toggleToolbarShown:', keyEquivalent: 't') 75 | item.keyEquivalentModifierMask = NSCommandKeyMask|NSAlternateKeyMask 76 | addItemWithTitle('Customize Toolbar…', action: 'runToolbarCustomizationPalette:', keyEquivalent: '') 77 | end 78 | 79 | NSApp.windowsMenu = addMenu('Window') do 80 | addItemWithTitle('Minimize', action: 'performMiniaturize:', keyEquivalent: 'm') 81 | addItemWithTitle('Zoom', action: 'performZoom:', keyEquivalent: '') 82 | addItem(NSMenuItem.separatorItem) 83 | addItemWithTitle('Bring All To Front', action: 'arrangeInFront:', keyEquivalent: '') 84 | end.menu 85 | 86 | NSApp.helpMenu = addMenu('Help') do 87 | addItemWithTitle("#{appName} Help", action: 'showHelp:', keyEquivalent: '?') 88 | end.menu 89 | 90 | NSApp.mainMenu = @mainMenu 91 | end 92 | 93 | private 94 | 95 | def addMenu(title, &b) 96 | item = createMenu(title, &b) 97 | @mainMenu.addItem item 98 | item 99 | end 100 | 101 | def createMenu(title, &b) 102 | menu = NSMenu.alloc.initWithTitle(title) 103 | menu.instance_eval(&b) if b 104 | item = NSMenuItem.alloc.initWithTitle(title, action: nil, keyEquivalent: '') 105 | item.submenu = menu 106 | item 107 | end 108 | end 109 | -------------------------------------------------------------------------------- /app/spec_setup.rb: -------------------------------------------------------------------------------- 1 | MOTION_FIREBASE_APP = 'motion-firebase' 2 | MOTION_FIREBASE_SPEC = "https://#{MOTION_FIREBASE_APP}.firebaseio.com/" 3 | -------------------------------------------------------------------------------- /lib/firebase-auth/firebase_simple_login.rb: -------------------------------------------------------------------------------- 1 | class FirebaseSimpleLogin 2 | 3 | def self.new(ref, options=nil) 4 | if options 5 | alloc.initWithRef(ref, options: options) 6 | else 7 | alloc.initWithRef(ref) 8 | end 9 | end 10 | 11 | def check(&and_then) 12 | checkAuthStatusWithBlock(and_then) 13 | end 14 | 15 | def update(credentials, &block) 16 | raise "email is required in #{__method__}" unless credentials.key?(:email) 17 | raise "old_password is required in #{__method__}" unless credentials.key?(:old_password) 18 | raise "new_password is required in #{__method__}" unless credentials.key?(:new_password) 19 | email = credentials[:email] 20 | old_password = credentials[:old_password] 21 | new_password = credentials[:new_password] 22 | changePasswordForEmail(email, oldPassword: old_password, newPassword: new_password, completionBlock: block) 23 | end 24 | 25 | end 26 | -------------------------------------------------------------------------------- /lib/firebase/fir_auth.rb: -------------------------------------------------------------------------------- 1 | class FIRAuth 2 | 3 | 4 | def logout 5 | signOut(nil) 6 | end 7 | 8 | 9 | def authenticated?(&block) 10 | !!currentUser 11 | end 12 | 13 | 14 | def authenticate(token, options={}, &and_then) 15 | and_then ||= options[:completion] 16 | signInWithCustomToken(token, completion: and_then) 17 | return self 18 | end 19 | 20 | def login(credentials, &and_then) 21 | raise ":email is required in #{__method__}" unless credentials.key?(:email) 22 | raise ":password is required in #{__method__}" unless credentials.key?(:password) 23 | email = credentials[:email] 24 | password = credentials[:password] 25 | signInWithEmail(email, password: password, completion: and_then) 26 | return self 27 | end 28 | 29 | def self.open_facebook_session(options={}, &block) 30 | self.new.open_facebook_session(options={}, &block) 31 | end 32 | 33 | def open_facebook_session(options={}, &block) 34 | ref = self 35 | permissions = options[:permissions] || ['email'] 36 | fb_login = FBSDKLoginManager.alloc.init 37 | fb_login.logInWithReadPermissions(permissions, 38 | handler: -> (facebookResult, facebookError) do 39 | if facebookError 40 | block.call(facebookError, nil) 41 | elsif facebookResult.isCancelled 42 | block.call("Facebook login got cancelled.", nil) 43 | else 44 | credentials = FIRFacebookAuthProvider.credentialWithAccessToken(FBSDKAccessToken.currentAccessToken.tokenString) 45 | ref.signInWithCredential(credentials, completion: block) 46 | end 47 | end) 48 | nil 49 | end 50 | 51 | def self.update_user_email(credentials, &block) 52 | self.new.update_user_email(credentials, &block) 53 | end 54 | 55 | def update_user_email(credentials, &block) 56 | raise ":email is required in #{__method__}" unless credentials.key?(:email) 57 | email = credentials[:email] 58 | currentUser.updateEmail(email, completion: block) 59 | end 60 | 61 | def self.update_password(credentials, &block) 62 | self.new.update_user(credentials, &block) 63 | end 64 | 65 | def update_password(credentials, &block) 66 | raise ":new_password is required in #{__method__}" unless credentials.key?(:new_password) 67 | new_password = credentials[:new_password] 68 | currentUser.updatePassword(new_password, completion: block) 69 | end 70 | 71 | def self.create_user_and_login(credentials, &block) 72 | self.new.create_user_and_login(credentials, &block) 73 | end 74 | 75 | def create_user_and_login(credentials, &block) 76 | raise ":email is required in #{__method__}" unless credentials.key?(:email) 77 | raise ":password is required in #{__method__}" unless credentials.key?(:password) 78 | email = credentials[:email] 79 | password = credentials[:password] 80 | begin 81 | createUserWithEmail(email, password: password, completion: -> (user, error) do 82 | if error 83 | block.call(error, nil) 84 | else 85 | login(credentials, &block) 86 | end 87 | end) 88 | rescue RuntimeError => e 89 | block.call(e, nil) 90 | end 91 | end 92 | 93 | def self.send_password_reset(credentials, &block) 94 | self.new.send_password_reset(credentials, &block) 95 | end 96 | 97 | def send_password_reset(email, &block) 98 | sendPasswordResetWithEmail(email, completion: block) 99 | end 100 | 101 | def check_provider_from_email(email, &block) 102 | fetchProvidersForEmail(email, completion: block) 103 | end 104 | 105 | def reauthenticate_user(credentials, &block) 106 | raise ":email is required in #{__method__}" unless credentials.key?(:email) 107 | raise ":password is required in #{__method__}" unless credentials.key?(:password) 108 | email = credentials[:email] 109 | password = credentials[:password] 110 | newCredentials = FIREmailPasswordAuthProvider.credentialWithEmail(email, password: password) 111 | currentUser.reauthenticateWithCredential(newCredentials, completion: block) 112 | end 113 | 114 | end -------------------------------------------------------------------------------- /lib/firebase/fir_data_snapshot.rb: -------------------------------------------------------------------------------- 1 | class FIRDataSnapshot 2 | 3 | def inspect 4 | "#<#{self.class}:0x#{self.object_id.to_s(16)} value=#{self.value.inspect} ref=#{self.ref.inspect}>" 5 | end 6 | 7 | def to_s 8 | self.value.to_s 9 | end 10 | 11 | def to_bool 12 | if self.value == 0 || self.value == false 13 | false 14 | else 15 | true 16 | end 17 | end 18 | 19 | def value? 20 | to_bool 21 | end 22 | 23 | end 24 | -------------------------------------------------------------------------------- /lib/firebase/fir_database.rb: -------------------------------------------------------------------------------- 1 | class FIRDatabase 2 | 3 | end -------------------------------------------------------------------------------- /lib/firebase/fir_database_query.rb: -------------------------------------------------------------------------------- 1 | class FIRDatabaseQuery 2 | 3 | # previously the 'key' method was called 'name' 4 | def name 5 | self.key 6 | end 7 | 8 | def on(event_type, options={}, &and_then) 9 | and_then = and_then || options[:completion] 10 | raise "event handler is required" unless and_then 11 | raise "event handler must accept one or two arguments" unless and_then.arity == 1 || and_then.arity == 2 12 | 13 | event_type = Firebase.convert_event_type(event_type) 14 | disconnect_block = options[:disconnect] 15 | raise ":disconnect handler must not accept any arguments" if disconnect_block && disconnect_block.arity > 0 16 | 17 | if and_then.arity == 1 18 | if disconnect_block 19 | return observeEventType(event_type, withBlock:and_then, withCancelBlock:disconnect_block) 20 | else 21 | return observeEventType(event_type, withBlock:and_then) 22 | end 23 | else 24 | if disconnect_block 25 | return observeEventType(event_type, andPreviousSiblingNameWithBlock:and_then, withCancelBlock:disconnect_block) 26 | else 27 | return observeEventType(event_type, andPreviousSiblingNameWithBlock:and_then) 28 | end 29 | end 30 | end 31 | 32 | def once(event_type, options={}, &and_then) 33 | and_then = and_then || options[:completion] 34 | raise "event handler is required" unless and_then 35 | raise "event handler must accept one or two arguments" unless and_then.arity == 1 || and_then.arity == 2 36 | 37 | event_type = Firebase.convert_event_type(event_type) 38 | disconnect_block = options[:disconnect] 39 | raise ":disconnect handler must not accept any arguments" if disconnect_block && disconnect_block.arity > 0 40 | 41 | if and_then.arity == 1 42 | if disconnect_block 43 | return observeSingleEventOfType(event_type, withBlock:and_then, withCancelBlock:disconnect_block) 44 | else 45 | return observeSingleEventOfType(event_type, withBlock:and_then) 46 | end 47 | else 48 | if disconnect_block 49 | return observeSingleEventOfType(event_type, andPreviousSiblingNameWithBlock:and_then, withCancelBlock:disconnect_block) 50 | else 51 | return observeSingleEventOfType(event_type, andPreviousSiblingNameWithBlock:and_then) 52 | end 53 | end 54 | end 55 | 56 | def off(handle=nil) 57 | if handle 58 | removeObserverWithHandle(handle) 59 | else 60 | removeAllObservers 61 | end 62 | return self 63 | end 64 | 65 | # def start_at(priority) 66 | # queryStartingAtPriority(priority) 67 | # end 68 | 69 | # def start_at(priority, child: child) 70 | # queryStartingAtPriority(priority, andChildName: child) 71 | # end 72 | 73 | # def equal_to(priority) 74 | # queryEqualToPriority(priority) 75 | # end 76 | 77 | # def equal_to(priority, child: child) 78 | # queryEqualToPriority(priority, andChildName: child) 79 | # end 80 | 81 | # def end_at(priority) 82 | # queryEndingAtPriority(priority) 83 | # end 84 | 85 | # def end_at(priority, child: child) 86 | # queryEndingAtPriority(priority, andChildName: child) 87 | # end 88 | 89 | def limit(options={}) 90 | limit = options[:limit] 91 | raise "Need to provide a limit" unless limit 92 | queryLimitedToLast(limit) 93 | end 94 | 95 | def query(options={}, &block) 96 | fb_query = self 97 | 98 | if options[:order_by_key] 99 | fb_query = fb_query.queryOrderedByKey 100 | end 101 | 102 | if options[:order_by_priority] 103 | fb_query = fb_query.queryOrderedByPriority 104 | end 105 | 106 | if options[:order_by] 107 | fb_query = fb_query.queryOrderedByChild(options[:order_by]) 108 | end 109 | 110 | if options[:first] 111 | fb_query = fb_query.queryLimitedToFirst(options[:first]) 112 | end 113 | 114 | if options[:last] 115 | fb_query = fb_query.queryLimitedToLast(options[:last]) 116 | end 117 | 118 | if options[:starting_at] && options[:key] 119 | fb_query = fb_query.queryStartingAtValue(options[:starting_at], childKey: options[:key]) 120 | elsif options[:starting_at] 121 | fb_query = fb_query.queryStartingAtValue(options[:starting_at]) 122 | end 123 | 124 | if options[:ending_at] && options[:key] 125 | fb_query = fb_query.queryEndingAtValue(options[:ending_at], childKey: options[:key]) 126 | elsif options[:ending_at] 127 | fb_query = fb_query.queryEndingAtValue(options[:ending_at]) 128 | end 129 | 130 | if options[:equal_to] && options[:key] 131 | fb_query = fb_query.queryEqualToValue(options[:equal_to], childKey: options[:key]) 132 | elsif options[:equal_to] 133 | fb_query = fb_query.queryEqualToValue(options[:equal_to]) 134 | end 135 | 136 | if block 137 | event_type = options.fetch(:once, options.fetch(:on, FIRDataEventTypeValue)) 138 | event_type = Firebase.convert_event_type(event_type) 139 | 140 | if options.key?(:once) 141 | return fb_query.observeSingleEventOfType(event_type, withBlock: block) 142 | else 143 | return fb_query.observeEventType(event_type, withBlock: block) 144 | end 145 | else 146 | fb_query 147 | end 148 | end 149 | 150 | end 151 | -------------------------------------------------------------------------------- /lib/firebase/fir_database_reference.rb: -------------------------------------------------------------------------------- 1 | class FIRDatabaseReference 2 | 3 | def connected_state(&block) 4 | connected? 5 | end 6 | 7 | def self.connected?(&block) 8 | self.connected?(&block) 9 | end 10 | def connected?(&block) 11 | if block 12 | connected_state.on(:value) do |snapshot| 13 | block.call(snapshot.value?) 14 | end 15 | else 16 | self.root['.info/connected'] 17 | end 18 | end 19 | 20 | 21 | 22 | # Data handling 23 | 24 | def transaction(options={}, &transaction) 25 | transaction = transaction || options[:transaction] 26 | completion_block = options[:completion] 27 | with_local_events = options[:local] 28 | if with_local_events.nil? 29 | if block_given? 30 | runTransactionBlock(transaction, andCompletionBlock: completion_block) 31 | else 32 | runTransactionBlock(transaction) 33 | end 34 | else 35 | if block_given? 36 | runTransactionBlock(transaction, andCompletionBlock: completion_block, withLocalEvents: with_local_events) 37 | else 38 | runTransactionBlock(transaction, withLocalEvents: with_local_events) 39 | end 40 | end 41 | end 42 | 43 | # @example 44 | # firebase = Firebase.new('http://..../') 45 | # firebase[] # => childByAutoId 46 | # firebase['fred'] # => childByAppendingPath('fred') 47 | # firebase['fred', 'name', 'first'] # => childByAppendingPath('fred/name/first') 48 | # firebase['fred']['name']['first'] 49 | # # => childByAppendingPath('fred').childByAppendingPath('name').childByAppendingPath('first'), 50 | # # same as => childByAppendingPath('fred/name/first') 51 | def [](*names) 52 | if names.length == 0 53 | childByAutoId 54 | else 55 | childByAppendingPath(names.join('/')) 56 | end 57 | end 58 | 59 | def []=(key, value) 60 | child(key).set(value) 61 | end 62 | 63 | def <<(value) 64 | ref = childByAutoId 65 | ref.set(value) 66 | return ref 67 | end 68 | 69 | def push(value, &and_then) 70 | ref = self.childByAutoId 71 | ref.set(value, &and_then) 72 | return ref 73 | end 74 | 75 | def value=(value) 76 | setValue(value) 77 | end 78 | 79 | def set(value, &and_then) 80 | if block_given? 81 | setValue(value, withCompletionBlock: and_then) 82 | else 83 | setValue(value) 84 | end 85 | return self 86 | end 87 | 88 | def clear!(&and_then) 89 | if block_given? 90 | removeValueWithCompletionBlock(and_then) 91 | else 92 | removeValue 93 | end 94 | return self 95 | end 96 | 97 | def priority=(value) 98 | priority(value) 99 | end 100 | 101 | def priority(value, &and_then) 102 | if block_given? 103 | setPriority(value, withCompletionBlock: and_then) 104 | else 105 | setPriority(value) 106 | end 107 | return self 108 | end 109 | 110 | def set(value, priority: priority, &and_then) 111 | if block_given? 112 | setValue(value, andPriority: priority, withCompletionBlock: and_then) 113 | else 114 | setValue(value, andPriority: priority) 115 | end 116 | return self 117 | end 118 | 119 | def update(values, &and_then) 120 | if block_given? 121 | updateChildValues(values, withCompletionBlock: and_then) 122 | else 123 | updateChildValues(values) 124 | end 125 | return self 126 | end 127 | 128 | def cancel_disconnect(&and_then) 129 | if block_given? 130 | cancelDisconnectOperationsWithCompletionBlock(and_then) 131 | else 132 | cancelDisconnectOperations 133 | end 134 | return self 135 | end 136 | 137 | def remove_on_disconnect(&and_then) 138 | on_disconnect(nil, &and_then) 139 | end 140 | 141 | def on_disconnect(value, &and_then) 142 | if block_given? 143 | if value.nil? 144 | onDisconnectRemoveValueWithCompletionBlock(and_then) 145 | elsif NSDictionary === value 146 | onDisconnectUpdateChildValues(value, withCompletionBlock: and_then) 147 | else 148 | onDisconnectSetValue(value, withCompletionBlock: and_then) 149 | end 150 | else 151 | if value.nil? 152 | onDisconnectRemoveValue 153 | elsif NSDictionary === value 154 | onDisconnectUpdateChildValues(value) 155 | else 156 | onDisconnectSetValue(value) 157 | end 158 | end 159 | return self 160 | end 161 | 162 | def on_disconnect(value, priority: priority, &and_then) 163 | if block_given? 164 | onDisconnectSetValue(value, andPriority: priority, withCompletionBlock: and_then) 165 | else 166 | onDisconnectSetValue(value, andPriority: priority) 167 | end 168 | return self 169 | end 170 | 171 | def to_s 172 | description 173 | end 174 | 175 | def inspect 176 | "#<#{self.class}:0x#{self.object_id.to_s(16)}>" 177 | end 178 | 179 | end -------------------------------------------------------------------------------- /lib/firebase/firebase.rb: -------------------------------------------------------------------------------- 1 | class Firebase 2 | ERRORS = { 3 | -9999 => :email_in_use, 4 | -2 => :wrong_password, 5 | } 6 | 7 | def self.convert_event_type(event_type) 8 | case event_type 9 | when :child_added, :added, FIRDataEventTypeChildAdded 10 | return FIRDataEventTypeChildAdded 11 | 12 | when :child_moved, :moved, FIRDataEventTypeChildMoved 13 | return FIRDataEventTypeChildMoved 14 | 15 | when :child_changed, :changed, FIRDataEventTypeChildChanged 16 | return FIRDataEventTypeChildChanged 17 | 18 | when :child_removed, :removed, FIRDataEventTypeChildRemoved 19 | return FIRDataEventTypeChildRemoved 20 | 21 | when :value, FIRDataEventTypeValue 22 | return FIRDataEventTypeValue 23 | 24 | else 25 | NSLog("Unknown event type #{event_type.inspect}") 26 | 27 | end 28 | return event_type 29 | end 30 | 31 | def self.url=(url) 32 | raise "method deprecated" 33 | end 34 | 35 | def self.configure(options={}) 36 | FIRApp.configure 37 | end 38 | 39 | def self.database(options={}) 40 | path = options[:path] || nil 41 | if path 42 | FIRDatabase.database.reference.child(path) 43 | else 44 | FIRDatabase.database.reference 45 | end 46 | end 47 | 48 | def self.auth 49 | FIRAuth.auth 50 | end 51 | 52 | end 53 | -------------------------------------------------------------------------------- /lib/firebase/firebase_facebook_helper.rb: -------------------------------------------------------------------------------- 1 | # see https://www.firebase.com/docs/ios/guide/login/facebook.html for more info 2 | # (that's where this code came from) 3 | class Firebase 4 | def self.open_facebook_session(options={}, &block) 5 | self.new.open_facebook_session(options={}, &block) 6 | end 7 | 8 | def open_facebook_session(options={}, &block) 9 | ref = self 10 | permissions = options[:permissions] || ['email'] 11 | fb_login = FBSDKLoginManager.alloc.init 12 | fb_login.logInWithReadPermissions(permissions, 13 | handler: -> (facebookResult, facebookError) do 14 | if facebookError 15 | block.call(facebookError, nil) 16 | elsif facebookResult.isCancelled 17 | block.call("Facebook login got cancelled.", nil) 18 | else 19 | access_token = FBSDKAccessToken.currentAccessToken.tokenString 20 | 21 | ref.authWithOAuthProvider('facebook', token: access_token, withCompletionBlock:block) 22 | end 23 | end) 24 | nil 25 | end 26 | end 27 | -------------------------------------------------------------------------------- /lib/firebase/firebase_github_helper.rb: -------------------------------------------------------------------------------- 1 | # see https://www.firebase.com/docs/ios/guide/login/github.html for more info 2 | # (that's where this code came from) 3 | class Firebase 4 | def self.github_token=(value) 5 | @github_token = value 6 | end 7 | def self.github_token 8 | @github_token 9 | end 10 | def self.open_github_session(options={}, &block) 11 | self.new.open_github_session(options={}, &block) 12 | end 13 | 14 | def open_github_session(options={}, &block) 15 | ref = self 16 | token = options[:token] || Firebase.github_token 17 | raise "token is required in #{__method__}" unless token 18 | firebase_ref.login_to_github('github', token) 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /lib/firebase/firebase_twitter_helper.rb: -------------------------------------------------------------------------------- 1 | # see https://www.firebase.com/docs/ios/guide/login/twitter.html for more info 2 | # (that's where this code came from) 3 | class Firebase 4 | def self.twitter_api_key=(value) 5 | @twitter_api_key = value 6 | end 7 | def self.twitter_api_key 8 | @twitter_api_key 9 | end 10 | def self.open_twitter_session(options={}, &block) 11 | self.new.open_twitter_session(options={}, &block) 12 | end 13 | 14 | def open_twitter_session(options={}, &block) 15 | ref = self 16 | api_key = options[:api_key] || Firebase.twitter_api_key 17 | raise "api_key is required in #{__method__}" unless api_key 18 | 19 | helper = Motion::Firebase::TwitterAuthHelper.new(ref, api_key) 20 | helper.select_twitter_account(&block) 21 | nil 22 | end 23 | end 24 | 25 | 26 | module Motion 27 | module Firebase 28 | class TwitterAuthHelper 29 | 30 | def initialize(ref, api_key) 31 | @store = ACAccountStore.new 32 | @ref = ref 33 | @api_key = api_key 34 | @account = nil 35 | @acounts = nil 36 | @firebase_callback = nil 37 | end 38 | 39 | # Step 1a -- get account 40 | def select_twitter_account(&callback) 41 | account_type = @store.accountTypeWithAccountTypeIdentifier(ACAccountTypeIdentifierTwitter) 42 | 43 | @store.requestAccessToAccountsWithType(account_type, options: nil, completion: -> (granted, error) do 44 | if granted 45 | @accounts = @store.accountsWithAccountType(account_type) 46 | if @accounts.length > 0 47 | Dispatch::Queue.main.async do 48 | next_step = -> (account, &firebase_handler) do 49 | self.authenticate_account(account, &firebase_handler) 50 | end 51 | callback.call(nil, @accounts, next_step) 52 | end if callback 53 | else 54 | error = NSError.alloc.initWithDomain('TwitterAuthHelper', 55 | code: AuthHelperErrorAccountAccessDenied, 56 | userInfo: { NSLocalizedDescriptionKey => 'No Twitter accounts detected on phone. Please add one in the settings first.' }) 57 | Dispatch::Queue.main.async do 58 | callback.call(error, nil, nil) 59 | end if callback 60 | end 61 | else 62 | error = NSError.alloc.initWithDomain('TwitterAuthHelper', 63 | code: AuthHelperErrorAccountAccessDenied, 64 | userInfo: { NSLocalizedDescriptionKey => 'Access to twitter accounts denied.' }) 65 | Dispatch::Queue.main.async do 66 | callback.call(error, nil, nil) 67 | end if callback 68 | end 69 | end) 70 | end 71 | 72 | # Last public facing method 73 | def authenticate_account(account, &firebase_handler) 74 | if !account 75 | error = NSError.alloc.initWithDomain('TwitterAuthHelper', 76 | code: AuthHelperErrorAccountAccessDenied, 77 | userInfo: { NSLocalizedDescriptionKey => 'No Twitter account to authenticate.' }) 78 | Dispatch::Queue.main.async do 79 | firebase_handler.call(error, nil) 80 | end if firebase_handler 81 | else 82 | @account = account 83 | @firebase_callback = firebase_handler 84 | make_reverse_request # kick off step 1b 85 | end 86 | end 87 | 88 | def callback_if_exists_with_error(error) 89 | if @firebase_callback 90 | Dispatch::Queue.main.async do 91 | @firebase_callback.call(error, nil) 92 | end 93 | end 94 | end 95 | 96 | # Step 1b -- get request token from Twitter 97 | def make_reverse_request 98 | @ref.makeReverseOAuthRequestTo('twitter', withCompletionBlock: -> (error, json) do 99 | if error 100 | callback_if_exists_with_error(error) 101 | else 102 | request = create_credential_request_with_reverse_auth_payload(json) 103 | request_twitter_credentials(request) 104 | end 105 | end) 106 | end 107 | 108 | # Step 1b Helper -- creates request to Twitter 109 | def create_credential_request_with_reverse_auth_payload(json) 110 | params = {} 111 | 112 | request_token = json['oauth'] 113 | params['x_reverse_auth_parameters'] = request_token 114 | params['x_reverse_auth_target'] = @api_key 115 | 116 | url = NSURL.URLWithString('https://api.twitter.com/oauth/access_token') 117 | req = SLRequest.requestForServiceType(SLServiceTypeTwitter, requestMethod: SLRequestMethodPOST, URL: url, parameters: params) 118 | req.setAccount(@account) 119 | 120 | req 121 | end 122 | 123 | # Step 2 -- request credentials from Twitter 124 | def request_twitter_credentials(request) 125 | request.performRequestWithHandler(-> (response_data, url_response, error) do 126 | if error 127 | callback_if_exists_with_error(error) 128 | else 129 | authenticate_with_twitter_credentials(response_data) 130 | end 131 | end) 132 | end 133 | 134 | # Step 3 -- authenticate with Firebase using Twitter credentials 135 | def authenticate_with_twitter_credentials(response_data) 136 | params = parse_twitter_credentials(response_data) 137 | if params['error'] 138 | error = NSError.alloc.initWithDomain('TwitterAuthHelper', 139 | code: AuthHelperErrorOAuthTokenRequestDenied, 140 | userInfo: { NSLocalizedDescriptionKey => 'OAuth token request was denied.', 141 | 'details' => params['error']}) 142 | callback_if_exists_with_error(error) 143 | else 144 | @ref.authWithOAuthProvider('twitter', parameters: params, withCompletionBlock: @firebase_callback) 145 | end 146 | end 147 | 148 | # Step 3 Helper -- parsers credentials into dictionary 149 | def parse_twitter_credentials(response_data) 150 | account_data = NSString.alloc.initWithData(response_data, encoding:NSUTF8StringEncoding) 151 | params = {} 152 | 153 | account_data.split('&').each do |param| 154 | key, value = param.split('=') 155 | params[key] = value 156 | end 157 | 158 | # This is super fragile error handling, but basically check that the token and token secret are there. 159 | # If not, return the result that Twitter returned. 160 | if params['oauth_token_secret'] && params['oauth_token'] 161 | params 162 | else 163 | { 'error' => account_data } 164 | end 165 | end 166 | 167 | end 168 | end 169 | end 170 | -------------------------------------------------------------------------------- /lib/firebase/version.rb: -------------------------------------------------------------------------------- 1 | module Motion 2 | module Firebase 3 | Version = '3.4.2' 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /lib/motion-firebase-auth.rb: -------------------------------------------------------------------------------- 1 | unless defined?(Motion::Project::Config) 2 | raise "The motion-firebase-auth gem must be required within a RubyMotion project Rakefile." 3 | end 4 | 5 | 6 | Motion::Project::App.setup do |app| 7 | app.warn 'Firebase', 'As of version 1.2.2 of Firebase (motion-firebase version 3.0.0), you no' 8 | app.warn '', 'longer need to include motion-firebase-auth, because FirebaseSimpleLogin' 9 | app.warn '', 'is part of the core Firebase SDK.' 10 | end 11 | -------------------------------------------------------------------------------- /lib/motion-firebase.rb: -------------------------------------------------------------------------------- 1 | unless defined?(Motion::Project::Config) 2 | raise "The motion-firebase gem must be required within a RubyMotion project Rakefile." 3 | end 4 | 5 | 6 | Motion::Project::App.setup do |app| 7 | 8 | # Pods dependencies 9 | app.pods do 10 | pod 'Firebase/Database', '= 3.4' 11 | pod 'Firebase/Auth', '= 3.4' 12 | end 13 | 14 | # scans app.files until it finds app/ (the default) 15 | # if found, it inserts just before those files, otherwise it will insert to 16 | # the end of the list 17 | insert_point = app.files.find_index { |file| file =~ /^(?:\.\/)?app\// } || 0 18 | 19 | Dir.glob(File.join(File.dirname(__FILE__), 'firebase/**/*.rb')).reverse.each do |file| 20 | app.files.insert(insert_point, file) 21 | end 22 | 23 | app.libs += ['/usr/lib/libicucore.dylib', '/usr/lib/libc++.dylib'] 24 | app.frameworks += ['CFNetwork', 'Security', 'SystemConfiguration'] 25 | # for twitter or facebook 26 | app.weak_frameworks += ['Accounts', 'Social'] 27 | 28 | end 29 | -------------------------------------------------------------------------------- /lib/vendor/Firebase.framework/Firebase: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubymotion-community/motion-firebase/4c852dc2ebbd20ae0fd1d27d851e02ebf6e03360/lib/vendor/Firebase.framework/Firebase -------------------------------------------------------------------------------- /lib/vendor/Firebase.framework/Headers/FAuthData.h: -------------------------------------------------------------------------------- 1 | // 2 | // FAuthData.h 3 | // Firebase 4 | // 5 | // Created by Katherine Fang on 7/30/14. 6 | // 7 | 8 | #import "FAuthType.h" 9 | 10 | 11 | /** 12 | * The FAuthData class is a wrapper around the user metadata returned from the Firebase auth server. 13 | * It includes the provider authenticated against, a uid (with the possible exception of authenticating against a custom 14 | * backend), and a token used to authenticate with Firebase. 15 | * 16 | * It may include other metadata about the user, depending on the provider used to do the authentication. 17 | */ 18 | @interface FAuthData : NSObject 19 | 20 | /** 21 | * @return Raw authentication token payload returned by the server 22 | */ 23 | @property (nonatomic, strong, readonly) NSDictionary *auth; 24 | 25 | /** 26 | * @return Authentication token expiration timestamp (seconds since epoch) returned by the server 27 | */ 28 | @property (nonatomic, strong, readonly) NSNumber *expires; 29 | 30 | /** 31 | * @return A uid for this user. It is unique across all auth providers. 32 | */ 33 | @property (nonatomic, strong, readonly) NSString *uid; 34 | 35 | 36 | /** 37 | * @return The provider that authenticated this user 38 | */ 39 | @property (nonatomic, readonly) NSString *provider; 40 | 41 | 42 | /** 43 | * @return The token that was used to authenticate this user with Firebase 44 | */ 45 | @property (nonatomic, strong, readonly) NSString *token; 46 | 47 | 48 | /** 49 | * @return Provider data keyed by provider. Includes cached data from third-party providers 50 | */ 51 | @property (nonatomic, strong, readonly) NSDictionary *providerData; 52 | 53 | 54 | @end 55 | -------------------------------------------------------------------------------- /lib/vendor/Firebase.framework/Headers/FAuthType.h: -------------------------------------------------------------------------------- 1 | // 2 | // FAuthType.h 3 | // Firebase 4 | // 5 | // Created by Katherine Fang on 7/30/14. 6 | // 7 | // All public-facing auth enums. 8 | // 9 | 10 | #ifndef Firebase_FAuthenticationTypes_h 11 | #define Firebase_FAuthenticationTypes_h 12 | 13 | typedef NS_ENUM(NSInteger, FAuthenticationError) { 14 | // Developer / Config Errors 15 | FAuthenticationErrorProviderDisabled = -1, 16 | FAuthenticationErrorInvalidConfiguration = -2, 17 | FAuthenticationErrorInvalidOrigin = -3, 18 | FAuthenticationErrorInvalidProvider = -4, 19 | 20 | // User Errors (Email / Password) 21 | FAuthenticationErrorInvalidEmail = -5, 22 | FAuthenticationErrorInvalidPassword = -6, 23 | FAuthenticationErrorInvalidToken = -7, 24 | FAuthenticationErrorUserDoesNotExist = -8, 25 | FAuthenticationErrorEmailTaken = -9, 26 | 27 | // User Errors (Facebook / Twitter / Github / Google) 28 | FAuthenticationErrorDeniedByUser = -10, 29 | FAuthenticationErrorInvalidCredentials = -11, 30 | FAuthenticationErrorInvalidArguments = -12, 31 | FAuthenticationErrorProviderError = -13, 32 | FAuthenticationErrorLimitsExceeded = -14, 33 | 34 | // Client side errors 35 | FAuthenticationErrorNetworkError = -15, 36 | FAuthenticationErrorPreempted = -16, 37 | 38 | FAuthenticationErrorUnknown = -9999 39 | }; 40 | 41 | #endif -------------------------------------------------------------------------------- /lib/vendor/Firebase.framework/Headers/FConfig.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Firebase iOS Client Library 3 | * 4 | * Copyright © 2015 Firebase - All Rights Reserved 5 | * https://www.firebase.com 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions are met: 9 | * 10 | * 1. Redistributions of source code must retain the above copyright notice, this 11 | * list of conditions and the following disclaimer. 12 | * 13 | * 2. Redistributions in binaryform must reproduce the above copyright notice, 14 | * this list of conditions and the following disclaimer in the documentation 15 | * and/or other materials provided with the distribution. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY FIREBASE AS IS AND ANY EXPRESS OR 18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 20 | * EVENT SHALL FIREBASE BE LIABLE FOR ANY DIRECT, 21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 22 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25 | * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 26 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | #import 30 | 31 | /** 32 | * Configuration object for Firebase. You can get the default FConfig object via 33 | * `[Firebase defaultConfig]` and modify it. You must make all changes to it before 34 | * you create your first Firebase instance. 35 | */ 36 | @interface FConfig : NSObject 37 | 38 | /** 39 | * By default the Firebase client will keep data in memory while your application is running, but not 40 | * when it is restarted. By setting this value to YES, the data will be persisted to on-device (disk) 41 | * storage and will thus be available again when the app is restarted (even when there is no network 42 | * connectivity at that time). Note that this property must be set before creating your first Firebase 43 | * reference and only needs to be called once per application. 44 | * 45 | * If your app uses Firebase Authentication, the client will automatically persist the user's authentication 46 | * token across restarts, even without persistence enabled. But if the auth token expired while offline and 47 | * you've enabled persistence, the client will pause write operations until you successfully re-authenticate 48 | * (or explicitly unauthenticate) to prevent your writes from being sent unauthenticated and failing due to 49 | * security rules. 50 | */ 51 | @property (nonatomic) BOOL persistenceEnabled; 52 | 53 | /** 54 | * By default Firebase will use up to 10MB of disk space to cache data. If the cache grows beyond this size, 55 | * Firebase will start removing data that hasn't been recently used. If you find that your application caches too 56 | * little or too much data, call this method to change the cache size. This property must be set before creating 57 | * your first Firebase reference and only needs to be called once per application. 58 | * 59 | * Note that the specified cache size is only an approximation and the size on disk may temporarily exceed it 60 | * at times. 61 | */ 62 | @property (nonatomic) NSUInteger persistenceCacheSizeBytes; 63 | 64 | /** 65 | * Sets the dispatch queue on which all events are raised. The default queue is the main queue. 66 | */ 67 | @property (nonatomic, strong) dispatch_queue_t callbackQueue; 68 | 69 | @end 70 | -------------------------------------------------------------------------------- /lib/vendor/Firebase.framework/Headers/FDataSnapshot.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Firebase iOS Client Library 3 | * 4 | * Copyright © 2013 Firebase - All Rights Reserved 5 | * https://www.firebase.com 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions are met: 9 | * 10 | * 1. Redistributions of source code must retain the above copyright notice, this 11 | * list of conditions and the following disclaimer. 12 | * 13 | * 2. Redistributions in binaryform must reproduce the above copyright notice, 14 | * this list of conditions and the following disclaimer in the documentation 15 | * and/or other materials provided with the distribution. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY FIREBASE AS IS AND ANY EXPRESS OR 18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 20 | * EVENT SHALL FIREBASE BE LIABLE FOR ANY DIRECT, 21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 22 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25 | * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 26 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | #import 30 | 31 | @class Firebase; 32 | 33 | /** 34 | * An FDataSnapshot contains data from a Firebase location. Any time you read 35 | * Firebase data, you receive the data as an FDataSnapshot. 36 | * 37 | * FDataSnapshots are passed to the blocks you attach with observeEventType:withBlock: or observeSingleEvent:withBlock:. 38 | * They are efficiently-generated immutable copies of the data at a Firebase location. 39 | * They can't be modified and will never change. To modify data at a location, 40 | * use a Firebase reference (e.g. with setValue:). 41 | */ 42 | @interface FDataSnapshot : NSObject 43 | 44 | 45 | /** @name Navigating and inspecting a snapshot */ 46 | 47 | /** 48 | * Get an FDataSnapshot for the location at the specified relative path. 49 | * The relative path can either be a simple child key (e.g. 'fred') 50 | * or a deeper slash-separated path (e.g. 'fred/name/first'). If the child 51 | * location has no data, an empty FDataSnapshot is returned. 52 | * 53 | * @param childPathString A relative path to the location of child data. 54 | * @return The FDataSnapshot for the child location. 55 | */ 56 | - (FDataSnapshot *) childSnapshotForPath:(NSString *)childPathString; 57 | 58 | 59 | /** 60 | * Return YES if the specified child exists. 61 | * 62 | * @param childPathString A relative path to the location of a potential child. 63 | * @return YES if data exists at the specified childPathString, else false. 64 | */ 65 | - (BOOL) hasChild:(NSString *)childPathString; 66 | 67 | 68 | /** 69 | * Return YES if the DataSnapshot has any children. 70 | * 71 | * @return YES if this snapshot has any children, else NO. 72 | */ 73 | - (BOOL) hasChildren; 74 | 75 | 76 | /** 77 | * Return YES if the DataSnapshot contains a non-null value. 78 | * 79 | * @return YES if this snapshot contains a non-null value, otherwise NO. 80 | */ 81 | - (BOOL) exists; 82 | 83 | 84 | /** @name Data export */ 85 | 86 | /** 87 | * Returns the raw value at this location, coupled with any metadata, such as priority. 88 | * 89 | * Priorities, where they exist, are accessible under the ".priority" key in instances of NSDictionary. 90 | * For leaf locations with priorities, the value will be under the ".value" key. 91 | */ 92 | - (id) valueInExportFormat; 93 | 94 | 95 | /** @name Properties */ 96 | 97 | /** 98 | * Returns the contents of this data snapshot as native types. 99 | * 100 | * Data types returned: 101 | * * NSDictionary 102 | * * NSArray 103 | * * NSNumber (also includes booleans) 104 | * * NSString 105 | * 106 | * @return The data as a native object. 107 | */ 108 | @property (strong, readonly, nonatomic) id value; 109 | 110 | 111 | /** 112 | * Get the number of children for this DataSnapshot. 113 | * 114 | * @return An integer indicating the number of children. 115 | */ 116 | @property (readonly, nonatomic) NSUInteger childrenCount; 117 | 118 | 119 | /** 120 | * Get a Firebase reference for the location that this data came from 121 | * 122 | * @return A Firebase instance for the location of this data 123 | */ 124 | @property (nonatomic, readonly, strong) Firebase* ref; 125 | 126 | 127 | /** 128 | * The key of the location that generated this FDataSnapshot. 129 | * 130 | * @return An NSString containing the key for the location of this FDataSnapshot. 131 | */ 132 | @property (strong, readonly, nonatomic) NSString* key; 133 | 134 | 135 | /** 136 | * An iterator for snapshots of the child nodes in this snapshot. 137 | * You can use the native for..in syntax: 138 | * 139 | * for (FDataSnapshot* child in snapshot.children) { 140 | * ... 141 | * } 142 | * 143 | * @return An NSEnumerator of the children 144 | */ 145 | @property (strong, readonly, nonatomic) NSEnumerator* children; 146 | 147 | /** 148 | * The priority of the data in this FDataSnapshot. 149 | * 150 | * @return The priority as a string, or nil if no priority was set. 151 | */ 152 | @property (strong, readonly, nonatomic) id priority; 153 | 154 | @end 155 | -------------------------------------------------------------------------------- /lib/vendor/Firebase.framework/Headers/FEventType.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Firebase iOS Client Library 3 | * 4 | * Copyright © 2013 Firebase - All Rights Reserved 5 | * https://www.firebase.com 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions are met: 9 | * 10 | * 1. Redistributions of source code must retain the above copyright notice, this 11 | * list of conditions and the following disclaimer. 12 | * 13 | * 2. Redistributions in binaryform must reproduce the above copyright notice, 14 | * this list of conditions and the following disclaimer in the documentation 15 | * and/or other materials provided with the distribution. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY FIREBASE AS IS AND ANY EXPRESS OR 18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 20 | * EVENT SHALL FIREBASE BE LIABLE FOR ANY DIRECT, 21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 22 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25 | * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 26 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | #ifndef Firebase_FEventType_h 30 | #define Firebase_FEventType_h 31 | 32 | /** 33 | * This enum is the set of events that you can observe at a Firebase location. 34 | */ 35 | typedef NS_ENUM(NSInteger, FEventType) { 36 | FEventTypeChildAdded, // 0, fired when a new child node is added to a location 37 | FEventTypeChildRemoved, // 1, fired when a child node is removed from a location 38 | FEventTypeChildChanged, // 2, fired when a child node at a location changes 39 | FEventTypeChildMoved, // 3, fired when a child node moves relative to the other child nodes at a location 40 | FEventTypeValue // 4, fired when any data changes at a location and, recursively, any children 41 | }; 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /lib/vendor/Firebase.framework/Headers/FMutableData.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Firebase iOS Client Library 3 | * 4 | * Copyright © 2013 Firebase - All Rights Reserved 5 | * https://www.firebase.com 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions are met: 9 | * 10 | * 1. Redistributions of source code must retain the above copyright notice, this 11 | * list of conditions and the following disclaimer. 12 | * 13 | * 2. Redistributions in binaryform must reproduce the above copyright notice, 14 | * this list of conditions and the following disclaimer in the documentation 15 | * and/or other materials provided with the distribution. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY FIREBASE AS IS AND ANY EXPRESS OR 18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 20 | * EVENT SHALL FIREBASE BE LIABLE FOR ANY DIRECT, 21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 22 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25 | * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 26 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | #import 30 | 31 | /** 32 | * An FMutableData instance is populated with data from a Firebase location. 33 | * When you are using runTransactionBlock:, you will be given an instance containing the current 34 | * data at that location. Your block will be responsible for updating that instance to the data 35 | * you wish to save at that location, and then returning using [FTransactionResult successWithValue:]. 36 | * 37 | * To modify the data, set its value property to any of the native types support by Firebase: 38 | * * NSNumber (includes BOOL) 39 | * * NSDictionary 40 | * * NSArray 41 | * * NSString 42 | * * nil / NSNull to remove the data 43 | * 44 | * Note that changes made to a child FMutableData instance will be visible to the parent. 45 | */ 46 | @interface FMutableData : NSObject 47 | 48 | 49 | /** @name Inspecting and navigating the data */ 50 | 51 | 52 | /** 53 | * Returns boolean indicating whether this mutable data has children. 54 | * 55 | * @return YES if this data contains child nodes. 56 | */ 57 | - (BOOL) hasChildren; 58 | 59 | 60 | /** 61 | * Indicates whether this mutable data has a child at the given path. 62 | * 63 | * @param path A path string, consisting either of a single segment, like 'child', or multiple segments, 'a/deeper/child' 64 | * @return YES if this data contains a child at the specified relative path 65 | */ 66 | - (BOOL) hasChildAtPath:(NSString *)path; 67 | 68 | 69 | /** 70 | * Used to obtain an FMutableData instance that encapsulates the data at the given relative path. 71 | * Note that changes made to the child will be visible to the parent. 72 | * 73 | * @param path A path string, consisting either of a single segment, like 'child', or multiple segments, 'a/deeper/child' 74 | * @return An FMutableData instance containing the data at the given path 75 | */ 76 | - (FMutableData *) childDataByAppendingPath:(NSString *)path; 77 | 78 | 79 | /** @name Properties */ 80 | 81 | 82 | /** 83 | * This method is deprecated. 84 | * 85 | * @return An FMutableData instance containing the data at the parent location, or nil if this is the top-most location 86 | */ 87 | @property (strong, readonly, nonatomic) FMutableData* parent __attribute__((deprecated("Deprecated. Do not use.")));; 88 | 89 | 90 | /** 91 | * To modify the data contained by this instance of FMutableData, set this to any of the native types support by Firebase: 92 | * 93 | * * NSNumber (includes BOOL) 94 | * * NSDictionary 95 | * * NSArray 96 | * * NSString 97 | * * nil / NSNull to remove the data 98 | * 99 | * Note that setting the value will override the priority at this location. 100 | * 101 | * @return The current data at this location as a native object 102 | */ 103 | @property (strong, nonatomic) id value; 104 | 105 | 106 | /** 107 | * Set this property to update the priority of the data at this location. Can be set to the following types: 108 | * 109 | * * NSNumber 110 | * * NSString 111 | * * nil / NSNull to remove the priority 112 | * 113 | * @return The priority of the data at this location 114 | */ 115 | @property (strong, nonatomic) id priority; 116 | 117 | 118 | /** 119 | * @return The number of child nodes at this location 120 | */ 121 | @property (readonly, nonatomic) NSUInteger childrenCount; 122 | 123 | 124 | /** 125 | * Used to iterate over the children at this location. You can use the native for .. in syntax: 126 | * 127 | * for (FMutableData* child in data.children) { 128 | * ... 129 | * } 130 | * 131 | * Note that this enumerator operates on an immutable copy of the child list. So, you can modify the instance 132 | * during iteration, but the new additions will not be visible until you get a new enumerator. 133 | */ 134 | @property (readonly, nonatomic, strong) NSEnumerator* children; 135 | 136 | 137 | /** 138 | * @return The key name of this node, or nil if it is the top-most location 139 | */ 140 | @property (readonly, nonatomic, strong) NSString* key; 141 | 142 | 143 | @end 144 | -------------------------------------------------------------------------------- /lib/vendor/Firebase.framework/Headers/FTransactionResult.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Firebase iOS Client Library 3 | * 4 | * Copyright © 2013 Firebase - All Rights Reserved 5 | * https://www.firebase.com 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions are met: 9 | * 10 | * 1. Redistributions of source code must retain the above copyright notice, this 11 | * list of conditions and the following disclaimer. 12 | * 13 | * 2. Redistributions in binaryform must reproduce the above copyright notice, 14 | * this list of conditions and the following disclaimer in the documentation 15 | * and/or other materials provided with the distribution. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY FIREBASE AS IS AND ANY EXPRESS OR 18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 20 | * EVENT SHALL FIREBASE BE LIABLE FOR ANY DIRECT, 21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 22 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25 | * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 26 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | #import 30 | #import "FMutableData.h" 31 | 32 | /** 33 | * Used for runTransactionBlock:. An FTransactionResult instance is a container for the results of the transaction. 34 | */ 35 | @interface FTransactionResult : NSObject 36 | 37 | /** 38 | * Used for runTransactionBlock:. Indicates that the new value should be saved at this location 39 | * 40 | * @param value An FMutableData instance containing the new value to be set 41 | * @return An FTransactionResult instance that can be used as a return value from the block given to runTransactionBlock: 42 | */ 43 | + (FTransactionResult *) successWithValue:(FMutableData *)value; 44 | 45 | 46 | /** 47 | * Used for runTransactionBlock:. Indicates that the current transaction should no longer proceed. 48 | * 49 | * @return An FTransactionResult instance that can be used as a return value from the block given to runTransactionBlock: 50 | */ 51 | + (FTransactionResult *) abort; 52 | 53 | @end 54 | -------------------------------------------------------------------------------- /lib/vendor/Firebase.framework/Headers/FirebaseApp.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | /** 4 | * All Firebase references to the same database share a connection, persistent cache, etc. FirebaseApp 5 | * represents this shared state and can be accessed from any reference via its `app` property. 6 | * It has methods for managing your Firebase connection, etc. 7 | * 8 | * There is a one-to-one relationship between a FirebaseApp instance and a connection to Firebase. 9 | */ 10 | @interface FirebaseApp : NSObject 11 | 12 | /** 13 | * The Firebase client automatically queues writes and sends them to the server at the earliest opportunity, 14 | * depending on network connectivity. In some cases (e.g. offline usage) there may be a large number of writes 15 | * waiting to be sent. Calling this method will purge all outstanding writes so they are abandoned. 16 | * 17 | * All writes will be purged, including transactions and {@link Firebase#onDisconnect} writes. The writes will 18 | * be rolled back locally, perhaps triggering events for affected event listeners, and the client will not 19 | * (re-)send them to the Firebase backend. 20 | */ 21 | - (void)purgeOutstandingWrites; 22 | 23 | 24 | /** 25 | * Shuts down our connection to the Firebase backend until goOnline is called. 26 | */ 27 | - (void)goOffline; 28 | 29 | /** 30 | * Resumes our connection to the Firebase backend after a previous goOffline call. 31 | */ 32 | - (void)goOnline; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /lib/vendor/Firebase.framework/Headers/FirebaseServerValue.h: -------------------------------------------------------------------------------- 1 | @interface FirebaseServerValue : NSObject 2 | 3 | + (NSDictionary *) timestamp; 4 | 5 | @end -------------------------------------------------------------------------------- /lib/vendor/Firebase.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubymotion-community/motion-firebase/4c852dc2ebbd20ae0fd1d27d851e02ebf6e03360/lib/vendor/Firebase.framework/Info.plist -------------------------------------------------------------------------------- /lib/vendor/Firebase.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Firebase { 2 | umbrella header "Firebase.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /lib/vendor/Firebase.framework/NOTICE: -------------------------------------------------------------------------------- 1 | Google LevelDB 2 | Copyright (c) 2011 The LevelDB Authors. All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 11 | 12 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 13 | 14 | -- 15 | 16 | Square Socket Rocket 17 | Copyright 2012 Square Inc. 18 | 19 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at 20 | 21 | http://www.apache.org/licenses/LICENSE-2.0 22 | 23 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 24 | 25 | -- 26 | 27 | APLevelDB 28 | Created by Adam Preble on 1/23/12. 29 | Copyright (c) 2012 Adam Preble. All rights reserved. 30 | 31 | Permission is hereby granted, free of charge, to any person obtaining a copy 32 | of this software and associated documentation files (the "Software"), to deal 33 | in the Software without restriction, including without limitation the rights 34 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 35 | copies of the Software, and to permit persons to whom the Software is 36 | furnished to do so, subject to the following conditions: 37 | 38 | The above copyright notice and this permission notice shall be included in 39 | all copies or substantial portions of the Software. 40 | 41 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 42 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 43 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 44 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 45 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 46 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 47 | THE SOFTWARE. 48 | -------------------------------------------------------------------------------- /motion-firebase.gemspec: -------------------------------------------------------------------------------- 1 | # -*- encoding: utf-8 -*- 2 | require File.expand_path('../lib/firebase/version.rb', __FILE__) 3 | 4 | Gem::Specification.new do |gem| 5 | gem.name = 'motion-firebase' 6 | gem.version = Motion::Firebase::Version 7 | gem.licenses = ['BSD'] 8 | 9 | gem.authors = ['Colin T.A. Gray'] 10 | gem.email = ['colinta@gmail.com'] 11 | gem.summary = 'A RubyMotion wrapper for the Firebase iOS SDK' 12 | gem.description = <<-DESC 13 | Adds more rubyesque methods to the built-in classes. 14 | DESC 15 | 16 | gem.homepage = 'https://github.com/colinta/motion-firebase' 17 | 18 | gem.files = Dir.glob('lib/**/*.rb') + Dir.glob('lib/vendor/**/*') + ['README.md'] 19 | gem.test_files = gem.files.grep(%r{^spec/}) 20 | 21 | gem.require_paths = ['lib'] 22 | end 23 | -------------------------------------------------------------------------------- /resources/Credits.rtf: -------------------------------------------------------------------------------- 1 | {\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;} 2 | {\colortbl;\red255\green255\blue255;} 3 | \paperw9840\paperh8400 4 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural 5 | 6 | \f0\b\fs24 \cf0 Engineering: 7 | \b0 \ 8 | Some people\ 9 | \ 10 | 11 | \b Human Interface Design: 12 | \b0 \ 13 | Some other people\ 14 | \ 15 | 16 | \b Testing: 17 | \b0 \ 18 | Hopefully not nobody\ 19 | \ 20 | 21 | \b Documentation: 22 | \b0 \ 23 | Whoever\ 24 | \ 25 | 26 | \b With special thanks to: 27 | \b0 \ 28 | Mom\ 29 | } 30 | -------------------------------------------------------------------------------- /resources/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubymotion-community/motion-firebase/4c852dc2ebbd20ae0fd1d27d851e02ebf6e03360/resources/Default-568h@2x.png -------------------------------------------------------------------------------- /spec/dispatch_queue_spec.rb: -------------------------------------------------------------------------------- 1 | describe 'Firebase Dispatch::Queue' do 2 | before do 3 | @queue = Dispatch::Queue.new('com.motion-firebase.specs') 4 | Firebase.dispatch_queue = @queue 5 | @firebase = Firebase.alloc.initWithUrl(MOTION_FIREBASE_SPEC).childByAppendingPath('specs') 6 | end 7 | 8 | after do 9 | Firebase.dispatch_queue = Dispatch::Queue.main 10 | @queue = nil 11 | end 12 | 13 | it 'should work fine' do 14 | @firebase.setValue('specs') 15 | wait 0.1 do 16 | @firebase.removeValue 17 | wait 0.1 do 18 | observer = @firebase.observeEventType(FEventTypeValue, withBlock: lambda do |snapshot| 19 | Dispatch::Queue.current.to_s.should == @queue.to_s 20 | end) 21 | wait 0.1 do 22 | @firebase.removeObserverWithHandle(observer) 23 | end 24 | end 25 | end 26 | end 27 | 28 | end 29 | -------------------------------------------------------------------------------- /spec/firebase_spec.rb: -------------------------------------------------------------------------------- 1 | describe 'Firebase' do 2 | 3 | it 'can create a Firebase instance' do 4 | firebase = Firebase.alloc.initWithUrl(MOTION_FIREBASE_SPEC) 5 | firebase.should.be.kind_of Firebase 6 | end 7 | 8 | it 'can create a Firebase instance with `new`' do 9 | firebase = Firebase.new(MOTION_FIREBASE_SPEC) 10 | firebase.should.be.kind_of Firebase 11 | end 12 | 13 | it 'can go online and offline' do 14 | -> { Firebase.offline! }.should.not.raise 15 | -> { Firebase.online! }.should.not.raise 16 | end 17 | 18 | describe 'setting Firebase.URL' do 19 | [ 20 | MOTION_FIREBASE_APP, 21 | "#{MOTION_FIREBASE_APP}.firebaseio.com/", 22 | "https://#{MOTION_FIREBASE_APP}", 23 | "https://#{MOTION_FIREBASE_APP}.firebaseio.com/", 24 | ].each do |shorthand| 25 | it "GOOD: #{shorthand}" do 26 | Firebase.url = shorthand 27 | Firebase.url.should == MOTION_FIREBASE_SPEC 28 | end 29 | end 30 | 31 | [ 32 | "#{MOTION_FIREBASE_APP}/bad", # 'app/bad' - firebaseio.com missing 33 | "http://#{MOTION_FIREBASE_APP}", # bad schemes 34 | "http://#{MOTION_FIREBASE_APP}.firebaseio.com", 35 | "ftp://#{MOTION_FIREBASE_APP}.firebaseio.com", 36 | ].each do |shorthand| 37 | it "BAD: #{shorthand}" do 38 | -> do 39 | Firebase.url = shorthand 40 | end.should.raise 41 | end 42 | end 43 | end 44 | 45 | it 'can create a Firebase instance using default URL' do 46 | Firebase.url = MOTION_FIREBASE_SPEC 47 | Firebase.url.should == MOTION_FIREBASE_SPEC 48 | firebase = Firebase.new 49 | firebase.should.be.kind_of Firebase 50 | end 51 | 52 | describe 'Firebase methods' do 53 | before do 54 | @firebase = Firebase.alloc.initWithUrl(MOTION_FIREBASE_SPEC).childByAppendingPath('specs') 55 | end 56 | 57 | it 'should clear! values' do 58 | @firebase.setValue('specs') 59 | wait 0.1 do 60 | @firebase.removeValue 61 | @firebase.on(:value) do |snapshot| 62 | @value = snapshot.value 63 | end 64 | wait 0.1 do 65 | @value.should == nil 66 | end 67 | end 68 | end 69 | 70 | it 'should access a child node with []' do 71 | child = @firebase['child'] 72 | child.should.be.kind_of Firebase 73 | child.key.should == 'child' 74 | end 75 | 76 | it 'should allow `name` to return the same value as `key`' do 77 | child = @firebase.childByAppendingPath("any-child-name-#{(rand*255).round.to_s(16)}") 78 | child.name.should == child.key 79 | end 80 | 81 | it 'should append child names with multiple arguments to []' do 82 | child = @firebase['child', '1'] 83 | child.should.be.kind_of Firebase 84 | child.key.should == '1' 85 | child.parent.key.should == 'child' 86 | end 87 | 88 | describe 'stopping handlers with "off"' do 89 | before do 90 | @firebase_off = @firebase['off'] 91 | @firebase_off.value = nil 92 | end 93 | 94 | it 'should stop responding after calling "off" with a handle' do 95 | @value1 = nil 96 | @value2 = nil 97 | handler1 = @firebase_off.on(:value) do |snapshot| 98 | @value1 = snapshot.value 99 | end 100 | handler2 = @firebase_off.on(:value) do |snapshot| 101 | @value2 = snapshot.value 102 | end 103 | @firebase_off.value = 'off' 104 | 105 | wait(0.1) do 106 | @value1.should == 'off' 107 | @value2.should == 'off' 108 | @firebase_off.off(handler1) 109 | 110 | @firebase_off.value = 'on!' 111 | wait(0.1) do 112 | @value1.should == 'off' 113 | @value2.should == 'on!' 114 | end 115 | end 116 | end 117 | 118 | it 'should stop all callbacks after calling "off"' do 119 | @value1 = nil 120 | @value2 = nil 121 | handler1 = @firebase_off.on(:value) do |snapshot| 122 | @value1 = snapshot.value 123 | end 124 | handler2 = @firebase_off.on(:value) do |snapshot| 125 | @value2 = snapshot.value 126 | end 127 | @firebase_off.value = 'off' 128 | 129 | wait(0.1) do 130 | @value1.should == 'off' 131 | @value2.should == 'off' 132 | @firebase_off.off 133 | 134 | @firebase_off.value = 'on!' 135 | wait(0.1) do 136 | @value1.should == 'off' 137 | @value2.should == 'off' 138 | end 139 | end 140 | end 141 | 142 | end 143 | 144 | describe 'should assign values using []=' do 145 | before do 146 | @value = nil 147 | @value1 = 'value1' 148 | @value2 = 'value2' 149 | 150 | @did_run = false 151 | @was_value1 = false 152 | @was_value2 = false 153 | 154 | @firebase_key = @firebase['key'] 155 | @firebase_key.on(:value) do |snapshot| 156 | @did_run = true 157 | @value = snapshot.value 158 | 159 | if @value == @value1 160 | @was_value1 = true 161 | end 162 | 163 | if @value == @value2 164 | @was_value2 = true 165 | end 166 | end 167 | end 168 | 169 | after do 170 | @firebase_key.off 171 | end 172 | 173 | it 'should run' do 174 | @firebase['key'] = @value1 175 | 176 | wait(0.1) do 177 | @did_run.should == true 178 | end 179 | end 180 | 181 | it 'should assign value1' do 182 | @firebase['key'] = @value1 183 | 184 | wait(0.1) do 185 | @did_run.should == true 186 | @value.should == @value1 187 | @was_value1.should == true 188 | end 189 | end 190 | 191 | it 'should not assign value2' do 192 | @firebase['key'] = @value1 193 | 194 | wait(0.1) do 195 | @did_run.should == true 196 | @value.should == @value1 197 | @was_value1.should == true 198 | @was_value2.should == false 199 | end 200 | end 201 | 202 | it 'should assign value2' do 203 | @firebase['key'] = @value1 204 | @firebase['key'] = @value2 205 | 206 | wait(0.1) do 207 | @did_run.should == true 208 | @value.should == @value2 209 | @was_value1.should == true 210 | @was_value2.should == true 211 | end 212 | end 213 | 214 | end 215 | 216 | describe "Pushing values onto a node" do 217 | before do 218 | @firebase_push = @firebase['push'] 219 | @value = [] 220 | @firebase_push.on(:child_added) do |snapshot| 221 | @value << snapshot.value 222 | end 223 | end 224 | 225 | after do 226 | @firebase_push.off 227 | @firebase_push.clear! 228 | end 229 | 230 | it 'should support push' do 231 | @firebase_push.push 'a' 232 | @firebase_push.push 'b' 233 | @firebase_push.push 'c' 234 | wait(0.1) do 235 | @value.should == ['a', 'b', 'c'] 236 | end 237 | end 238 | 239 | it 'should support <<' do 240 | @firebase_push << 'a' 241 | @firebase_push << 'b' 242 | @firebase_push << 'c' 243 | wait(0.1) do 244 | @value.should == ['a', 'b', 'c'] 245 | end 246 | end 247 | 248 | end 249 | 250 | # def value=(value) 251 | # def priority=(value) 252 | # def priority(value, &and_then) 253 | # def set(value, priority:priority, &and_then) 254 | # def update(values, &and_then) 255 | # def cancel_disconnect(&and_then) 256 | # def authenticated?(options={}, &block) 257 | # def on_disconnect(value, &and_then) 258 | # def on_disconnect(value, priority:priority, &and_then) 259 | # def inspect 260 | # def once(event_type, options={}, &and_then) 261 | # def start_at(priority) 262 | # def start_at(priority, child:child) 263 | # def equal_to(priority) 264 | # def equal_to(priority, child:child) 265 | # def end_at(priority) 266 | # def end_at(priority, child:child) 267 | 268 | # def transaction(options={}, &transaction) 269 | # def auth(token, &and_then) 270 | # def logout(&and_then) 271 | 272 | end 273 | 274 | end 275 | -------------------------------------------------------------------------------- /spec/query_spec.rb: -------------------------------------------------------------------------------- 1 | describe 'Firebase query methods' do 2 | 3 | before do 4 | @firebase = Firebase.alloc.initWithUrl(MOTION_FIREBASE_SPEC) 5 | end 6 | 7 | [ 8 | { order_by_key: true }, 9 | { order_by_priority: true }, 10 | { order_by: 'key' }, 11 | { first: 5 }, 12 | { last: 5 }, 13 | { starting_at: 'foo' }, 14 | { starting_at: 'foo', key: 'key' }, 15 | { ending_at: 'bar' }, 16 | { ending_at: 'bar', key: 'key' }, 17 | { equal_to: 'baz' }, 18 | { equal_to: 'baz', key: 'key' }, 19 | { first: 5, starting_at: 'foo' }, 20 | ].each do |opts| 21 | it "should accept #{opts.inspect}" do 22 | query = @firebase.query(opts) 23 | query.should.be.kind_of(FQuery) 24 | end 25 | end 26 | 27 | end 28 | -------------------------------------------------------------------------------- /spec/util_spec.rb: -------------------------------------------------------------------------------- 1 | describe 'MotionFirebase utilities' do 2 | describe 'convert_event_type' do 3 | [ 4 | [[:child_added, :added], FIRDataEventTypeChildAdded], 5 | [[:child_moved, :moved], FIRDataEventTypeChildMoved], 6 | [[:child_changed, :changed], FIRDataEventTypeChildChanged], 7 | [[:child_removed, :removed], FIRDataEventTypeChildRemoved], 8 | [[:value], FIRDataEventTypeValue], 9 | ].each do |symbols, actual| 10 | symbols.each do |sym| 11 | it("should convert #{sym.inspect}") do 12 | Firebase.convert_event_type(sym).should == actual 13 | end 14 | end 15 | end 16 | end 17 | end 18 | -------------------------------------------------------------------------------- /vendor/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Firebase/Analytics (3.4.0): 3 | - FirebaseAnalytics (~> 3.3) 4 | - Firebase/Auth (3.4.0): 5 | - Firebase/Analytics 6 | - FirebaseAuth (= 3.0.4) 7 | - Firebase/Database (3.4.0): 8 | - Firebase/Analytics 9 | - FirebaseDatabase (= 3.0.2) 10 | - FirebaseAnalytics (3.9.0): 11 | - FirebaseCore (~> 3.6) 12 | - FirebaseInstanceID (~> 1.0) 13 | - GoogleToolboxForMac/NSData+zlib (~> 2.1) 14 | - FirebaseAuth (3.0.4): 15 | - FirebaseAnalytics (~> 3.2) 16 | - GoogleNetworkingUtilities (~> 1.2) 17 | - GoogleParsingUtilities (~> 1.1) 18 | - GoogleUtilities (~> 1.2) 19 | - FirebaseCore (3.6.0): 20 | - GoogleToolboxForMac/NSData+zlib (~> 2.1) 21 | - FirebaseDatabase (3.0.2): 22 | - FirebaseAnalytics (~> 3.2) 23 | - FirebaseInstanceID (1.0.10): 24 | - FirebaseCore (~> 3.6) 25 | - GoogleNetworkingUtilities (1.2.2): 26 | - GoogleSymbolUtilities (~> 1.1) 27 | - GoogleParsingUtilities (1.1.2): 28 | - GoogleNetworkingUtilities (~> 1.2) 29 | - GoogleSymbolUtilities (~> 1.1) 30 | - GoogleSymbolUtilities (1.1.2) 31 | - GoogleToolboxForMac/Defines (2.1.1) 32 | - GoogleToolboxForMac/NSData+zlib (2.1.1): 33 | - GoogleToolboxForMac/Defines (= 2.1.1) 34 | - GoogleUtilities (1.3.2): 35 | - GoogleSymbolUtilities (~> 1.1) 36 | 37 | DEPENDENCIES: 38 | - Firebase/Auth (= 3.4) 39 | - Firebase/Database (= 3.4) 40 | 41 | SPEC CHECKSUMS: 42 | Firebase: 754562547af419cc2f4b15247fee419081924bc2 43 | FirebaseAnalytics: e5fe8486efc01bec33f6bf82e2fa9fce4b124052 44 | FirebaseAuth: 26fd291c3b552fc9658420b867520d5ae080421c 45 | FirebaseCore: 9691ee2ade70c098d7cf92440f4303f16d83ca75 46 | FirebaseDatabase: 59bea2e7dfd81b3b8b2f8e396caf1a52c2ced6f7 47 | FirebaseInstanceID: b9eedd6846fb5e1f0f7279e1deaa7a7e4cf8392e 48 | GoogleNetworkingUtilities: 3edd3a8161347494f2da60ea0deddc8a472d94cb 49 | GoogleParsingUtilities: d265e86f84c1ab595f6ca5172b22a7a10ce99e1f 50 | GoogleSymbolUtilities: 631ee17048aa5e9ab133470d768ea997a5ef9b96 51 | GoogleToolboxForMac: 8e329f1b599f2512c6b10676d45736bcc2cbbeb0 52 | GoogleUtilities: 8bbc733218aad26306f9d4a253823986110e3358 53 | 54 | PODFILE CHECKSUM: 26dc82b8ff758fac0bdbee1940895e2ee52f15c1 55 | 56 | COCOAPODS: 1.2.1 57 | -------------------------------------------------------------------------------- /vendor/Pods/.build/libGoogleToolboxForMac.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubymotion-community/motion-firebase/4c852dc2ebbd20ae0fd1d27d851e02ebf6e03360/vendor/Pods/.build/libGoogleToolboxForMac.a -------------------------------------------------------------------------------- /vendor/Pods/.build/libPods-RubyMotion.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubymotion-community/motion-firebase/4c852dc2ebbd20ae0fd1d27d851e02ebf6e03360/vendor/Pods/.build/libPods-RubyMotion.a -------------------------------------------------------------------------------- /vendor/Pods/Firebase/Analytics/Sources/Firebase.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #if !defined(__has_include) 4 | #error "Firebase.h won't import anything if your compiler doesn't support __has_include. Please \ 5 | import the headers individually." 6 | #else 7 | #if __has_include() 8 | #import 9 | #endif 10 | 11 | #if __has_include() 12 | #import 13 | #endif 14 | 15 | #if __has_include() 16 | #import 17 | #endif 18 | 19 | #if __has_include() 20 | #import 21 | #endif 22 | 23 | #if __has_include() 24 | #import 25 | #endif 26 | 27 | #if __has_include() 28 | #import 29 | #endif 30 | 31 | #if __has_include() 32 | #import 33 | #endif 34 | 35 | #if __has_include() 36 | #import 37 | #endif 38 | 39 | #if __has_include() 40 | #import 41 | #endif 42 | 43 | #if __has_include() 44 | #import 45 | #endif 46 | 47 | #if __has_include() 48 | #import 49 | #endif 50 | 51 | #endif // defined(__has_include) 52 | -------------------------------------------------------------------------------- /vendor/Pods/Firebase/Analytics/Sources/module.modulemap: -------------------------------------------------------------------------------- 1 | module Firebase { 2 | export * 3 | header "Firebase.h" 4 | } -------------------------------------------------------------------------------- /vendor/Pods/Firebase/README.md: -------------------------------------------------------------------------------- 1 | # Firebase APIs for iOS 2 | 3 | Simplify your iOS development, grow your user base, and monetize more 4 | effectively with Firebase services. 5 | 6 | Much more information can be found at [https://firebase.google.com](https://firebase.google.com). 7 | 8 | ## Install a Firebase SDK using CocoaPods 9 | 10 | Firebase distributes several iOS specific APIs and SDKs via CocoaPods. 11 | You can install the CocoaPods tool on OS X by running the following command from 12 | the terminal. Detailed information is available in the [Getting Started 13 | guide](https://guides.cocoapods.org/using/getting-started.html#getting-started). 14 | 15 | ``` 16 | $ sudo gem install cocoapods 17 | ``` 18 | 19 | ## Try out an SDK 20 | 21 | You can try any of the SDKs with `pod try`. Run the following command and select 22 | the SDK you are interested in when prompted: 23 | 24 | ``` 25 | $ pod try Firebase 26 | ``` 27 | 28 | Note that some SDKs may require credentials. More information is available in 29 | the SDK-specific documentation at [https://firebase.google.com/docs/](https://firebase.google.com/docs/). 30 | 31 | ## Add a Firebase SDK to your iOS app 32 | 33 | CocoaPods is used to install and manage dependencies in existing Xcode projects. 34 | 35 | 1. Create an Xcode project, and save it to your local machine. 36 | 2. Create a file named `Podfile` in your project directory. This file defines 37 | your project's dependencies, and is commonly referred to as a Podspec. 38 | 3. Open `Podfile`, and add your dependencies. A simple Podspec is shown here: 39 | 40 | ``` 41 | platform :ios, '7.0' 42 | pod 'Firebase' 43 | ``` 44 | 45 | 4. Save the file. 46 | 5. Open a terminal and `cd` to the directory containing the Podfile. 47 | 48 | ``` 49 | $ cd /project/ 50 | ``` 51 | 52 | 6. Run the `pod install` command. This will install the SDKs specified in the 53 | Podspec, along with any dependencies they may have. 54 | 55 | ``` 56 | $ pod install 57 | ``` 58 | 59 | 7. Open your app's `.xcworkspace` file to launch Xcode. 60 | Use this file for all development on your app. 61 | 8. You can also install other Firebase SDKs by adding the subspecs in the 62 | Podfile. 63 | 64 | ``` 65 | pod 'Firebase/AdMob' 66 | pod 'Firebase/Analytics' 67 | pod 'Firebase/AppIndexing' 68 | pod 'Firebase/Auth' 69 | pod 'Firebase/Crash' 70 | pod 'Firebase/Database' 71 | pod 'Firebase/DynamicLinks' 72 | pod 'Firebase/Invites' 73 | pod 'Firebase/Messaging' 74 | pod 'Firebase/RemoteConfig' 75 | pod 'Firebase/Storage' 76 | ``` 77 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubymotion-community/motion-firebase/4c852dc2ebbd20ae0fd1d27d851e02ebf6e03360/vendor/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "FIRAnalytics.h" 4 | 5 | /** 6 | * Provides App Delegate handlers to be used in your App Delegate. 7 | * 8 | * To save time integrating Firebase Analytics in an application, Firebase Analytics does not 9 | * require delegation implementation from the AppDelegate. Instead this is automatically done by 10 | * Firebase Analytics. Should you choose instead to delegate manually, you can turn off the App 11 | * Delegate Proxy by adding FirebaseAppDelegateProxyEnabled into your app's Info.plist and setting 12 | * it to NO, and adding the methods in this category to corresponding delegation handlers. 13 | * 14 | * To handle Universal Links, you must return YES in 15 | * [UIApplicationDelegate application:didFinishLaunchingWithOptions:]. 16 | */ 17 | @interface FIRAnalytics (AppDelegate) 18 | 19 | /** 20 | * Handles events related to a URL session that are waiting to be processed. 21 | * 22 | * For optimal use of Firebase Analytics, call this method from the 23 | * [UIApplicationDelegate application:handleEventsForBackgroundURLSession:completionHandler] 24 | * method of the app delegate in your app. 25 | * 26 | * @param identifier The identifier of the URL session requiring attention. 27 | * @param completionHandler The completion handler to call when you finish processing the events. 28 | * Calling this completion handler lets the system know that your app's user interface is 29 | * updated and a new snapshot can be taken. 30 | */ 31 | + (void)handleEventsForBackgroundURLSession:(NSString *)identifier 32 | completionHandler:(void (^)(void))completionHandler; 33 | 34 | /** 35 | * Handles the event when the app is launched by a URL. 36 | * 37 | * Call this method from [UIApplicationDelegate application:openURL:options:] (on iOS 9.0 and 38 | * above), or [UIApplicationDelegate application:openURL:sourceApplication:annotation:] (on 39 | * iOS 8.x and below) in your app. 40 | * 41 | * @param url The URL resource to open. This resource can be a network resource or a file. 42 | */ 43 | + (void)handleOpenURL:(NSURL *)url; 44 | 45 | /** 46 | * Handles the event when the app receives data associated with user activity that includes a 47 | * Universal Link (on iOS 9.0 and above). 48 | * 49 | * Call this method from [UIApplication continueUserActivity:restorationHandler:] in your app 50 | * delegate (on iOS 9.0 and above). 51 | * 52 | * @param userActivity The activity object containing the data associated with the task the user 53 | * was performing. 54 | */ 55 | + (void)handleUserActivity:(id)userActivity; 56 | 57 | @end 58 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "FIREventNames.h" 4 | #import "FIRParameterNames.h" 5 | #import "FIRUserPropertyNames.h" 6 | 7 | NS_ASSUME_NONNULL_BEGIN 8 | 9 | /// The top level Firebase Analytics singleton that provides methods for logging events and setting 10 | /// user properties. See the developer guides for general 11 | /// information on using Firebase Analytics in your apps. 12 | @interface FIRAnalytics : NSObject 13 | 14 | /// Logs an app event. The event can have up to 25 parameters. Events with the same name must have 15 | /// the same parameters. Up to 500 event names are supported. Using predefined events and/or 16 | /// parameters is recommended for optimal reporting. 17 | /// 18 | /// The following event names are reserved and cannot be used: 19 | ///
    20 | ///
  • app_clear_data
  • 21 | ///
  • app_remove
  • 22 | ///
  • app_update
  • 23 | ///
  • error
  • 24 | ///
  • first_open
  • 25 | ///
  • in_app_purchase
  • 26 | ///
  • notification_dismiss
  • 27 | ///
  • notification_foreground
  • 28 | ///
  • notification_open
  • 29 | ///
  • notification_receive
  • 30 | ///
  • os_update
  • 31 | ///
  • session_start
  • 32 | ///
  • user_engagement
  • 33 | ///
34 | /// 35 | /// @param name The name of the event. Should contain 1 to 40 alphanumeric characters or 36 | /// underscores. The name must start with an alphabetic character. Some event names are 37 | /// reserved. See FIREventNames.h for the list of reserved event names. The "firebase_" prefix 38 | /// is reserved and should not be used. Note that event names are case-sensitive and that 39 | /// logging two events whose names differ only in case will result in two distinct events. 40 | /// @param parameters The dictionary of event parameters. Passing nil indicates that the event has 41 | /// no parameters. Parameter names can be up to 40 characters long and must start with an 42 | /// alphabetic character and contain only alphanumeric characters and underscores. Only NSString 43 | /// and NSNumber (signed 64-bit integer and 64-bit floating-point number) parameter types are 44 | /// supported. NSString parameter values can be up to 100 characters long. The "firebase_" 45 | /// prefix is reserved and should not be used for parameter names. 46 | + (void)logEventWithName:(NSString *)name 47 | parameters:(nullable NSDictionary *)parameters; 48 | 49 | /// Sets a user property to a given value. Up to 25 user property names are supported. Once set, 50 | /// user property values persist throughout the app lifecycle and across sessions. 51 | /// 52 | /// The following user property names are reserved and cannot be used: 53 | ///
    54 | ///
  • first_open_time
  • 55 | ///
  • last_deep_link_referrer
  • 56 | ///
  • user_id
  • 57 | ///
58 | /// 59 | /// @param value The value of the user property. Values can be up to 36 characters long. Setting the 60 | /// value to nil removes the user property. 61 | /// @param name The name of the user property to set. Should contain 1 to 24 alphanumeric characters 62 | /// or underscores and must start with an alphabetic character. The "firebase_" prefix is 63 | /// reserved and should not be used for user property names. 64 | + (void)setUserPropertyString:(nullable NSString *)value forName:(NSString *)name; 65 | 66 | /// Sets the user ID property. This feature must be used in accordance with 67 | /// Google's Privacy Policy 68 | /// 69 | /// @param userID The user ID to ascribe to the user of this app on this device, which must be 70 | /// non-empty and no more than 36 characters long. Setting userID to nil removes the user ID. 71 | + (void)setUserID:(nullable NSString *)userID; 72 | 73 | /// Sets the current screen name, which specifies the current visual context in your app. This helps 74 | /// identify the areas in your app where users spend their time and how they interact with your app. 75 | /// 76 | /// Note that screen reporting is enabled automatically and records the class name of the current 77 | /// UIViewController for you without requiring you to call this method. If you implement 78 | /// viewDidAppear in your UIViewController but do not call [super viewDidAppear:], that screen class 79 | /// will not be automatically tracked. The class name can optionally be overridden by calling this 80 | /// method in the viewDidAppear callback of your UIViewController and specifying the 81 | /// screenClassOverride parameter. 82 | /// 83 | /// If your app does not use a distinct UIViewController for each screen, you should call this 84 | /// method and specify a distinct screenName each time a new screen is presented to the user. 85 | /// 86 | /// The screen name and screen class remain in effect until the current UIViewController changes or 87 | /// a new call to setScreenName:screenClass: is made. 88 | /// 89 | /// @param screenName The name of the current screen. Should contain 1 to 100 characters. Set to nil 90 | /// to clear the current screen name. 91 | /// @param screenClassOverride The name of the screen class. Should contain 1 to 100 characters. By 92 | /// default this is the class name of the current UIViewController. Set to nil to revert to the 93 | /// default class name. 94 | + (void)setScreenName:(nullable NSString *)screenName 95 | screenClass:(nullable NSString *)screenClassOverride; 96 | 97 | /// The unique ID for this instance of the application. 98 | + (NSString *)appInstanceID; 99 | 100 | @end 101 | 102 | NS_ASSUME_NONNULL_END 103 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsConfiguration.h: -------------------------------------------------------------------------------- 1 | #import 2 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRApp.h: -------------------------------------------------------------------------------- 1 | #import 2 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRConfiguration.h: -------------------------------------------------------------------------------- 1 | #import 2 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIROptions.h: -------------------------------------------------------------------------------- 1 | #import 2 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h: -------------------------------------------------------------------------------- 1 | /// @file FIRUserPropertyNames.h 2 | /// 3 | /// Predefined user property names. 4 | /// 5 | /// A UserProperty is an attribute that describes the app-user. By supplying UserProperties, you can 6 | /// later analyze different behaviors of various segments of your userbase. You may supply up to 25 7 | /// unique UserProperties per app, and you can use the name and value of your choosing for each one. 8 | /// UserProperty names can be up to 24 characters long, may only contain alphanumeric characters and 9 | /// underscores ("_"), and must start with an alphabetic character. UserProperty values can be up to 10 | /// 36 characters long. The "firebase_" prefix is reserved and should not be used. 11 | 12 | /// The method used to sign in. For example, "google", "facebook" or "twitter". 13 | static NSString *const kFIRUserPropertySignUpMethod = @"sign_up_method"; 14 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h: -------------------------------------------------------------------------------- 1 | #import "FIRAnalyticsConfiguration.h" 2 | #import "FIRApp.h" 3 | #import "FIRConfiguration.h" 4 | #import "FIROptions.h" 5 | #import "FIRAnalytics+AppDelegate.h" 6 | #import "FIRAnalytics.h" 7 | #import "FIREventNames.h" 8 | #import "FIRParameterNames.h" 9 | #import "FIRUserPropertyNames.h" 10 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module FirebaseAnalytics { 2 | umbrella header "FirebaseAnalytics.h" 3 | export * 4 | module * { export *} 5 | link "c++" 6 | link "sqlite3" 7 | link "z" 8 | link framework "UIKit" 9 | } -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAuth/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # 2016-07-18 -- v3.0.4 2 | - Fixes a race condition bug that could crash the app with an exception from 3 | NSURLSession on iOS 9. 4 | 5 | # 2016-06-20 -- v3.0.3 6 | - Adds documentation for all possible errors returned by each method. 7 | - Improves error handling and messages for a variety of error conditions. 8 | - Whether or not an user is considered anonymous is now consistent with other 9 | platforms. 10 | - A saved signed in user is now siloed between different Firebase projects 11 | within the same app. 12 | 13 | # 2016-05-18 -- v3.0.2 14 | - Initial public release. 15 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/FirebaseAuth: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubymotion-community/motion-firebase/4c852dc2ebbd20ae0fd1d27d851e02ebf6e03360/vendor/Pods/FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/FirebaseAuth -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/Headers/FIRAuthCredential.h: -------------------------------------------------------------------------------- 1 | /** @file FIRAuthCredential.h 2 | @brief Firebase Auth SDK 3 | @copyright Copyright 2015 Google Inc. 4 | @remarks Use of this SDK is subject to the Google APIs Terms of Service: 5 | https://developers.google.com/terms/ 6 | */ 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | /** @class FIRAuthCredential 13 | @brief Represents a credential. 14 | */ 15 | @interface FIRAuthCredential : NSObject 16 | 17 | /** @property provider 18 | @brief Gets the name of the identity provider for the credential. 19 | */ 20 | @property(nonatomic, copy, readonly) NSString *provider; 21 | 22 | /** @fn init 23 | @brief This is an abstract base class. Concrete instances should be created via factory 24 | methods available in the various authentication provider libraries (like the Facebook 25 | provider or the Google provider libraries.) 26 | */ 27 | - (nullable instancetype)init NS_UNAVAILABLE; 28 | 29 | @end 30 | 31 | NS_ASSUME_NONNULL_END 32 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/Headers/FIRAuthErrors.h: -------------------------------------------------------------------------------- 1 | /** @file FIRAuthErrors.h 2 | @brief Firebase Auth SDK 3 | @copyright Copyright 2015 Google Inc. 4 | @remarks Use of this SDK is subject to the Google APIs Terms of Service: 5 | https://developers.google.com/terms/ 6 | */ 7 | 8 | #import 9 | 10 | /** @class FIRAuthErrors 11 | @remarks Error Codes common to all API Methods: 12 | - FIRAuthErrorCodeNetworkError - Indicates a network error occurred during the operation. 13 | - FIRAuthErrorCodeUserNotFound - Indicates the user account was not found. This could happen 14 | if the user account has been deleted. 15 | - FIRAuthErrorCodeUserTokenExpired - Indicates the current user’s token has expired, for 16 | example, the user may have changed account password on another device. You must prompt 17 | the user to sign in again on this device. 18 | - FIRAuthErrorCodeTooManyRequests - Indicates that the request has been blocked after an 19 | abnormal number of requests have been made from the caller device to the Firebase Auth 20 | servers. Retry again after some time. 21 | - FIRAuthErrorCodeInvalidAPIKey - Indicates the application has been configured with an 22 | invalid API key. 23 | - FIRAuthErrorCodeAppNotAuthorized - Indicates the App is not authorized to use Firebase 24 | Authentication with the provided API Key. Go to the Google API Console and check under 25 | the credentials tab that the API key you are using has your application’s bundle ID 26 | whitelisted. 27 | - FIRAuthErrorCodeKeychainError - Indicates an error occurred while accessing the keychain. 28 | The NSLocalizedFailureReasonErrorKey and NSUnderlyingErrorKey fields in the 29 | NSError.userInfo dictionary will contain more information about the error encountered. 30 | - FIRAuthErrorCodeInternalError - Indicates an internal error occurred. Please report the 31 | error back to us with the entire NSError object. 32 | @remarks Common error codes for FIRUser operations: 33 | - FIRAuthErrorCodeInvalidUserToken - Indicates that the signed-in user's refresh token, 34 | that holds session information, is invalid. You must prompt the user to sign in again 35 | on this device. 36 | - FIRAuthErrorCodeUserDisabled - Indicates the user's account is disabled and can no longer 37 | be used until enabled again from within the Users panel in the Firebase console. 38 | */ 39 | @interface FIRAuthErrors 40 | 41 | /** @var FIRAuthErrorDomain 42 | @brief The Firebase Auth error domain. 43 | */ 44 | extern NSString *const FIRAuthErrorDomain; 45 | 46 | /** @var FIRAuthErrorNameKey 47 | @brief The name of the key for the "error_name" string in the NSError userinfo dictionary. 48 | */ 49 | extern NSString *const FIRAuthErrorNameKey; 50 | 51 | /** @enum FIRAuthErrorCode 52 | @brief Error codes used by Firebase Auth. 53 | */ 54 | typedef NS_ENUM(NSInteger, FIRAuthErrorCode) { 55 | /** Indicates a validation error with the custom token. 56 | */ 57 | FIRAuthErrorCodeInvalidCustomToken = 17000, 58 | 59 | /** Indicates the service account and the API key belong to different projects. 60 | */ 61 | FIRAuthErrorCodeCustomTokenMismatch = 17002, 62 | 63 | /** Indicates the IDP token or requestUri is invalid. 64 | */ 65 | FIRAuthErrorCodeInvalidCredential = 17004, 66 | 67 | /** Indicates the user's account is disabled on the server. 68 | */ 69 | FIRAuthErrorCodeUserDisabled = 17005, 70 | 71 | /** Indicates the administrator disabled sign in with the specified identity provider. 72 | */ 73 | FIRAuthErrorCodeOperationNotAllowed = 17006, 74 | 75 | /** Indicates the email used to attempt a sign up is already in use. 76 | */ 77 | FIRAuthErrorCodeEmailAlreadyInUse = 17007, 78 | 79 | /** Indicates the email is invalid. 80 | */ 81 | FIRAuthErrorCodeInvalidEmail = 17008, 82 | 83 | /** Indicates the user attempted sign in with a wrong password. 84 | */ 85 | FIRAuthErrorCodeWrongPassword = 17009, 86 | 87 | /** Indicates that too many requests were made to a server method. 88 | */ 89 | FIRAuthErrorCodeTooManyRequests = 17010, 90 | 91 | /** Indicates the user account was not found. 92 | */ 93 | FIRAuthErrorCodeUserNotFound = 17011, 94 | 95 | /** Indicates account linking is required. 96 | */ 97 | FIRAuthErrorCodeAccountExistsWithDifferentCredential = 17012, 98 | 99 | /** Same enum as @c FIRAuthErrorCodeAccountExistsWithDifferentCredential , 100 | but with incorrect spelling. Only exists for backwards compatiblity. 101 | */ 102 | FIRAuthErrrorCodeAccountExistsWithDifferentCredential = 17012, 103 | 104 | /** Indicates the user has attemped to change email or password more than 5 minutes after 105 | signing in. 106 | */ 107 | FIRAuthErrorCodeRequiresRecentLogin = 17014, 108 | 109 | /** Indicates an attempt to link a provider to which the account is already linked. 110 | */ 111 | FIRAuthErrorCodeProviderAlreadyLinked = 17015, 112 | 113 | /** Indicates an attempt to unlink a provider that is not linked. 114 | */ 115 | FIRAuthErrorCodeNoSuchProvider = 17016, 116 | 117 | /** Indicates user's saved auth credential is invalid, the user needs to sign in again. 118 | */ 119 | FIRAuthErrorCodeInvalidUserToken = 17017, 120 | 121 | /** Indicates a network error occurred (such as a timeout, interrupted connection, or 122 | unreachable host). These types of errors are often recoverable with a retry. The @c 123 | NSUnderlyingError field in the @c NSError.userInfo dictionary will contain the error 124 | encountered. 125 | */ 126 | FIRAuthErrorCodeNetworkError = 17020, 127 | 128 | /** Indicates the saved token has expired, for example, the user may have changed account 129 | password on another device. The user needs to sign in again on the device that made this 130 | request. 131 | */ 132 | FIRAuthErrorCodeUserTokenExpired = 17021, 133 | 134 | /** Indicates an invalid API key was supplied in the request. 135 | */ 136 | FIRAuthErrorCodeInvalidAPIKey = 17023, 137 | 138 | /** Indicates that an attempt was made to reauthenticate with a user which is not the current 139 | user. 140 | */ 141 | FIRAuthErrorCodeUserMismatch = 17024, 142 | 143 | /** Indicates an attempt to link with a credential that has already been linked with a 144 | different Firebase account 145 | */ 146 | FIRAuthErrorCodeCredentialAlreadyInUse = 17025, 147 | 148 | /** Indicates an attempt to set a password that is considered too weak. 149 | */ 150 | FIRAuthErrorCodeWeakPassword = 17026, 151 | 152 | /** Indicates the App is not authorized to use Firebase Authentication with the 153 | provided API Key. 154 | */ 155 | FIRAuthErrorCodeAppNotAuthorized = 17028, 156 | 157 | /** Indicates an error occurred while attempting to access the keychain. 158 | */ 159 | FIRAuthErrorCodeKeychainError = 17995, 160 | 161 | /** Indicates an internal error occurred. 162 | */ 163 | FIRAuthErrorCodeInternalError = 17999, 164 | }; 165 | 166 | @end 167 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/Headers/FIREmailPasswordAuthProvider.h: -------------------------------------------------------------------------------- 1 | /** @file FIREmailPasswordAuthProvider.h 2 | @brief Firebase Auth SDK 3 | @copyright Copyright 2016 Google Inc. 4 | @remarks Use of this SDK is subject to the Google APIs Terms of Service: 5 | https://developers.google.com/terms/ 6 | */ 7 | 8 | #import 9 | 10 | @class FIRAuthCredential; 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | /** @var FIREmailPasswordAuthProviderID 15 | @brief A string constant identifying the email & password identity provider. 16 | */ 17 | extern NSString *const FIREmailPasswordAuthProviderID; 18 | 19 | /** @class FIREmailPasswordAuthProvider 20 | @brief A concrete implementation of @c FIRAuthProvider for Email & Password Sign In. 21 | */ 22 | @interface FIREmailPasswordAuthProvider : NSObject 23 | 24 | /** @fn credentialWithEmail:password: 25 | @brief Creates an @c FIRAuthCredential for an email & password sign in. 26 | @param email The user's email address. 27 | @param password The user's password. 28 | @return A @c FIRAuthCredential containing the email & password credential. 29 | */ 30 | + (FIRAuthCredential *)credentialWithEmail:(NSString *)email password:(NSString *)password; 31 | 32 | /** @fn init 33 | @brief This class is not meant to be initialized. 34 | */ 35 | - (nullable instancetype)init NS_UNAVAILABLE; 36 | 37 | @end 38 | 39 | NS_ASSUME_NONNULL_END 40 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/Headers/FIRFacebookAuthProvider.h: -------------------------------------------------------------------------------- 1 | /** @file FIRFacebookAuthProvider.h 2 | @brief Firebase Auth SDK 3 | @copyright Copyright 2016 Google Inc. 4 | @remarks Use of this SDK is subject to the Google APIs Terms of Service: 5 | https://developers.google.com/terms/ 6 | */ 7 | 8 | #import 9 | 10 | @class FIRAuthCredential; 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | /** @var FIRFacebookAuthProviderID 15 | @brief A string constant identifying the Facebook identity provider. 16 | */ 17 | extern NSString *const FIRFacebookAuthProviderID; 18 | 19 | /** @class FIRFacebookAuthProvider 20 | @brief Utility class for constructing Facebook credentials. 21 | */ 22 | @interface FIRFacebookAuthProvider : NSObject 23 | 24 | /** @fn credentialWithAccessToken: 25 | @brief Creates an @c FIRAuthCredential for a Facebook sign in. 26 | @param accessToken The Access Token from Facebook. 27 | @return A @c FIRAuthCredential containing the Facebook credentials. 28 | */ 29 | + (FIRAuthCredential *)credentialWithAccessToken:(NSString *)accessToken; 30 | 31 | /** @fn init 32 | @brief This class should not be initialized. 33 | */ 34 | - (nullable instancetype)init NS_UNAVAILABLE; 35 | 36 | @end 37 | 38 | NS_ASSUME_NONNULL_END 39 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/Headers/FIRGitHubAuthProvider.h: -------------------------------------------------------------------------------- 1 | /** @file FIRGitHubAuthProvider.h 2 | @brief Firebase Auth SDK 3 | @copyright Copyright 2016 Google Inc. 4 | @remarks Use of this SDK is subject to the Google APIs Terms of Service: 5 | https://developers.google.com/terms/ 6 | */ 7 | 8 | #import 9 | 10 | @class FIRAuthCredential; 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | /** @var FIRGitHubAuthProviderID 15 | @brief A string constant identifying the GitHub identity provider. 16 | */ 17 | extern NSString *const FIRGitHubAuthProviderID; 18 | 19 | /** @class FIRGitHubAuthProvider 20 | @brief Utility class for constructing GitHub credentials. 21 | */ 22 | @interface FIRGitHubAuthProvider : NSObject 23 | 24 | /** @fn credentialWithToken: 25 | @brief Creates an @c FIRAuthCredential for a GitHub sign in. 26 | @param token The GitHub OAuth access token. 27 | @return A @c FIRAuthCredential containing the GitHub credential. 28 | */ 29 | + (FIRAuthCredential *)credentialWithToken:(NSString *)token; 30 | 31 | /** @fn init 32 | @brief This class is not meant to be initialized. 33 | */ 34 | - (nullable instancetype)init NS_UNAVAILABLE; 35 | 36 | @end 37 | 38 | NS_ASSUME_NONNULL_END 39 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/Headers/FIRGoogleAuthProvider.h: -------------------------------------------------------------------------------- 1 | /** @file FIRGoogleAuthProvider.h 2 | @brief Firebase Auth SDK 3 | @copyright Copyright 2016 Google Inc. 4 | @remarks Use of this SDK is subject to the Google APIs Terms of Service: 5 | https://developers.google.com/terms/ 6 | */ 7 | 8 | #import 9 | 10 | @class FIRAuthCredential; 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | /** @var FIRGoogleAuthProviderID 15 | @brief A string constant identifying the Google identity provider. 16 | */ 17 | extern NSString *const FIRGoogleAuthProviderID; 18 | 19 | /** @class FIRGoogleAuthProvider 20 | @brief Utility class for constructing Google Sign In credentials. 21 | */ 22 | @interface FIRGoogleAuthProvider : NSObject 23 | 24 | /** @fn credentialWithIDToken:accessToken: 25 | @brief Creates an @c FIRAuthCredential for a Google sign in. 26 | @param IDToken The ID Token from Google. 27 | @param accessToken The Access Token from Google. 28 | @return A @c FIRAuthCredential containing the Google credentials. 29 | */ 30 | + (FIRAuthCredential *)credentialWithIDToken:(NSString *)IDToken 31 | accessToken:(NSString *)accessToken; 32 | 33 | /** @fn init 34 | @brief This class should not be initialized. 35 | */ 36 | - (nullable instancetype)init NS_UNAVAILABLE; 37 | 38 | @end 39 | 40 | NS_ASSUME_NONNULL_END 41 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/Headers/FIRTwitterAuthProvider.h: -------------------------------------------------------------------------------- 1 | /** @file FIRTwitterAuthProvider.h 2 | @brief Firebase Auth SDK 3 | @copyright Copyright 2016 Google Inc. 4 | @remarks Use of this SDK is subject to the Google APIs Terms of Service: 5 | https://developers.google.com/terms/ 6 | */ 7 | 8 | #import 9 | 10 | @class FIRAuthCredential; 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | /** @var FIRTwitterAuthProviderID 15 | @brief A string constant identifying the Twitter identity provider. 16 | */ 17 | extern NSString *const FIRTwitterAuthProviderID; 18 | 19 | /** @class FIRTwitterAuthProvider 20 | @brief Utility class for constructing Twitter credentials. 21 | */ 22 | @interface FIRTwitterAuthProvider : NSObject 23 | 24 | /** @fn credentialWithToken:secret: 25 | @brief Creates an @c FIRAuthCredential for a Twitter sign in. 26 | @param token The Twitter OAuth token. 27 | @param secret The Twitter OAuth secret. 28 | @return A @c FIRAuthCredential containing the Twitter credential. 29 | */ 30 | + (FIRAuthCredential *)credentialWithToken:(NSString *)token secret:(NSString *)secret; 31 | 32 | /** @fn init 33 | @brief This class is not meant to be initialized. 34 | */ 35 | - (nullable instancetype)init NS_UNAVAILABLE; 36 | 37 | @end 38 | 39 | NS_ASSUME_NONNULL_END 40 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/Headers/FIRUserInfo.h: -------------------------------------------------------------------------------- 1 | /** @file FIRUserInfo.h 2 | @brief Firebase Auth SDK 3 | @copyright Copyright 2015 Google Inc. 4 | @remarks Use of this SDK is subject to the Google APIs Terms of Service: 5 | https://developers.google.com/terms/ 6 | */ 7 | 8 | #import 9 | 10 | NS_ASSUME_NONNULL_BEGIN 11 | 12 | /** @protocol FIRUserInfo 13 | @brief Represents user data returned from an identity provider. 14 | */ 15 | @protocol FIRUserInfo 16 | 17 | /** @property providerID 18 | @brief The provider identifier. 19 | */ 20 | @property(nonatomic, copy, readonly) NSString *providerID; 21 | 22 | /** @property uid 23 | @brief The provider's user ID for the user. 24 | */ 25 | @property(nonatomic, copy, readonly) NSString *uid; 26 | 27 | /** @property displayName 28 | @brief The name of the user. 29 | */ 30 | @property(nonatomic, copy, readonly, nullable) NSString *displayName; 31 | 32 | /** @property photoURL 33 | @brief The URL of the user's profile photo. 34 | */ 35 | @property(nonatomic, copy, readonly, nullable) NSURL *photoURL; 36 | 37 | /** @property email 38 | @brief The user's email address. 39 | */ 40 | @property(nonatomic, copy, readonly, nullable) NSString *email; 41 | 42 | @end 43 | 44 | NS_ASSUME_NONNULL_END 45 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/Headers/FirebaseAuth.h: -------------------------------------------------------------------------------- 1 | /** @file FirebaseAuth.h 2 | @brief Firebase Auth SDK 3 | @copyright Copyright 2015 Google Inc. 4 | @remarks Use of this SDK is subject to the Google APIs Terms of Service: 5 | https://developers.google.com/terms/ 6 | */ 7 | 8 | #import 9 | #import 10 | #import 11 | #import 12 | #import 13 | #import 14 | #import 15 | #import 16 | #import 17 | #import 18 | 19 | /** @var FirebaseAuthVersionNumber 20 | @brief Version number for FirebaseAuth. 21 | */ 22 | extern const double FirebaseAuthVersionNumber; 23 | 24 | /** @var FirebaseAuthVersionString 25 | @brief Version string for FirebaseAuth. 26 | */ 27 | extern const unsigned char *const FirebaseAuthVersionString; 28 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module FirebaseAuth { 2 | umbrella header "FirebaseAuth.h" 3 | 4 | export * 5 | 6 | header "FIRAuth.h" 7 | header "FIRAuthCredential.h" 8 | header "FIRAuthErrors.h" 9 | header "FIREmailPasswordAuthProvider.h" 10 | header "FIRFacebookAuthProvider.h" 11 | header "FIRGitHubAuthProvider.h" 12 | header "FIRGoogleAuthProvider.h" 13 | header "FIRTwitterAuthProvider.h" 14 | header "FIRUser.h" 15 | header "FIRUserInfo.h" 16 | 17 | link framework "Security" 18 | 19 | use FirebaseAnalytics 20 | } 21 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseAuth/README.md: -------------------------------------------------------------------------------- 1 | # Firebase Auth for iOS 2 | 3 | Firebase Auth enables apps to easily support multiple authentication options 4 | for their end users. 5 | 6 | Please visit [our developer site](https://developers.google.com/) for 7 | integration instructions, documentation, support information, and terms of 8 | service. 9 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/FirebaseCore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubymotion-community/motion-firebase/4c852dc2ebbd20ae0fd1d27d851e02ebf6e03360/vendor/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/FirebaseCore -------------------------------------------------------------------------------- /vendor/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRAnalyticsConfiguration.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | /** 4 | * This class provides configuration fields for Firebase Analytics. 5 | */ 6 | @interface FIRAnalyticsConfiguration : NSObject 7 | 8 | /** 9 | * Returns the shared instance of FIRAnalyticsConfiguration. 10 | */ 11 | + (FIRAnalyticsConfiguration *)sharedInstance; 12 | 13 | /** 14 | * Sets the minimum engagement time in seconds required to start a new session. The default value 15 | * is 10 seconds. 16 | */ 17 | - (void)setMinimumSessionInterval:(NSTimeInterval)minimumSessionInterval; 18 | 19 | /** 20 | * Sets the interval of inactivity in seconds that terminates the current session. The default 21 | * value is 1800 seconds (30 minutes). 22 | */ 23 | - (void)setSessionTimeoutInterval:(NSTimeInterval)sessionTimeoutInterval; 24 | 25 | /** 26 | * Sets whether analytics collection is enabled for this app on this device. This setting is 27 | * persisted across app sessions. By default it is enabled. 28 | */ 29 | - (void)setAnalyticsCollectionEnabled:(BOOL)analyticsCollectionEnabled; 30 | 31 | /** 32 | * Deprecated. Sets whether measurement and reporting are enabled for this app on this device. By 33 | * default they are enabled. 34 | */ 35 | - (void)setIsEnabled:(BOOL)isEnabled 36 | DEPRECATED_MSG_ATTRIBUTE("Use setAnalyticsCollectionEnabled: instead."); 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRApp.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @class FIROptions; 5 | 6 | NS_ASSUME_NONNULL_BEGIN 7 | 8 | /** A block that takes a BOOL and has no return value. */ 9 | typedef void (^FIRAppVoidBoolCallback)(BOOL success); 10 | 11 | /** 12 | * The entry point of Firebase SDKs. 13 | * 14 | * Initialize and configure FIRApp using +[FIRApp configure] 15 | * or other customized ways as shown below. 16 | * 17 | * The logging system has two modes: default mode and debug mode. In default mode, only logs with 18 | * log level Notice, Warning and Error will be sent to device. In debug mode, all logs will be sent 19 | * to device. The log levels that Firebase uses are consistent with the ASL log levels. 20 | * 21 | * Enable debug mode by passing the -FIRDebugEnabled argument to the application. You can add this 22 | * argument in the application's Xcode scheme. When debug mode is enabled via -FIRDebugEnabled, 23 | * further executions of the application will also be in debug mode. In order to return to default 24 | * mode, you must explicitly disable the debug mode with the application argument -FIRDebugDisabled. 25 | * 26 | * It is also possible to change the default logging level in code by calling setLoggerLevel: on 27 | * the FIRConfiguration interface. 28 | */ 29 | @interface FIRApp : NSObject 30 | 31 | /** 32 | * Configures a default Firebase app. Raises an exception if any configuration step fails. The 33 | * default app is named "__FIRAPP_DEFAULT". This method should be called after the app is launched 34 | * and before using Firebase services. This method is thread safe. 35 | */ 36 | + (void)configure; 37 | 38 | /** 39 | * Configures the default Firebase app with the provided options. The default app is named 40 | * "__FIRAPP_DEFAULT". Raises an exception if any configuration step fails. This method is thread 41 | * safe. 42 | * 43 | * @param options The Firebase application options used to configure the service. 44 | */ 45 | + (void)configureWithOptions:(FIROptions *)options; 46 | 47 | /** 48 | * Configures a Firebase app with the given name and options. Raises an exception if any 49 | * configuration step fails. This method is thread safe. 50 | * 51 | * @param name The application's name given by the developer. The name should should only contain 52 | Letters, Numbers and Underscore. 53 | * @param options The Firebase application options used to configure the services. 54 | */ 55 | + (void)configureWithName:(NSString *)name options:(FIROptions *)options; 56 | 57 | /** 58 | * Returns the default app, or nil if the default app does not exist. 59 | */ 60 | + (nullable FIRApp *)defaultApp NS_SWIFT_NAME(defaultApp()); 61 | 62 | /** 63 | * Returns a previously created FIRApp instance with the given name, or nil if no such app exists. 64 | * This method is thread safe. 65 | */ 66 | + (nullable FIRApp *)appNamed:(NSString *)name; 67 | 68 | /** 69 | * Returns the set of all extant FIRApp instances, or nil if there are no FIRApp instances. This 70 | * method is thread safe. 71 | */ 72 | + (nullable NSDictionary *)allApps; 73 | 74 | /** 75 | * Cleans up the current FIRApp, freeing associated data and returning its name to the pool for 76 | * future use. This method is thread safe. 77 | */ 78 | - (void)deleteApp:(FIRAppVoidBoolCallback)completion; 79 | 80 | /** 81 | * FIRApp instances should not be initialized directly. Call +[FIRApp configure], 82 | * +[FIRApp configureWithOptions:], or +[FIRApp configureWithNames:options:] directly. 83 | */ 84 | - (instancetype)init NS_UNAVAILABLE; 85 | 86 | /** 87 | * Gets the name of this app. 88 | */ 89 | @property(nonatomic, copy, readonly) NSString *name; 90 | 91 | /** 92 | * Gets the options for this app. 93 | */ 94 | @property(nonatomic, readonly) FIROptions *options; 95 | 96 | @end 97 | 98 | NS_ASSUME_NONNULL_END 99 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRConfiguration.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "FIRAnalyticsConfiguration.h" 4 | #import "FIRLoggerLevel.h" 5 | 6 | /** 7 | * The log levels used by FIRConfiguration. 8 | */ 9 | typedef NS_ENUM(NSInteger, FIRLogLevel) { 10 | /** Error */ 11 | kFIRLogLevelError __deprecated = 0, 12 | /** Warning */ 13 | kFIRLogLevelWarning __deprecated, 14 | /** Info */ 15 | kFIRLogLevelInfo __deprecated, 16 | /** Debug */ 17 | kFIRLogLevelDebug __deprecated, 18 | /** Assert */ 19 | kFIRLogLevelAssert __deprecated, 20 | /** Max */ 21 | kFIRLogLevelMax __deprecated = kFIRLogLevelAssert 22 | } DEPRECATED_MSG_ATTRIBUTE( 23 | "Use -FIRDebugEnabled and -FIRDebugDisabled or setLoggerLevel. See FIRApp.h for more details."); 24 | 25 | /** 26 | * This interface provides global level properties that the developer can tweak, and the singleton 27 | * of the Firebase Analytics configuration class. 28 | */ 29 | @interface FIRConfiguration : NSObject 30 | 31 | /** Returns the shared configuration object. */ 32 | + (FIRConfiguration *)sharedInstance; 33 | 34 | /** The configuration class for Firebase Analytics. */ 35 | @property(nonatomic, readwrite) FIRAnalyticsConfiguration *analyticsConfiguration; 36 | 37 | /** Global log level. Defaults to kFIRLogLevelError. */ 38 | @property(nonatomic, readwrite, assign) FIRLogLevel logLevel DEPRECATED_MSG_ATTRIBUTE( 39 | "Use -FIRDebugEnabled and -FIRDebugDisabled or setLoggerLevel. See FIRApp.h for more details."); 40 | 41 | /** 42 | * Sets the logging level for internal Firebase logging. Firebase will only log messages 43 | * that are logged at or below loggerLevel. The messages are logged both to the Xcode 44 | * console and to the device's log. Note that if an app is running from AppStore, it will 45 | * never log above FIRLoggerLevelNotice even if loggerLevel is set to a higher (more verbose) 46 | * setting. 47 | * 48 | * @param loggerLevel The maximum logging level. The default level is set to FIRLoggerLevelNotice. 49 | */ 50 | - (void)setLoggerLevel:(FIRLoggerLevel)loggerLevel; 51 | 52 | @end 53 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRLoggerLevel.h: -------------------------------------------------------------------------------- 1 | /** 2 | * The log levels used by internal logging. 3 | */ 4 | typedef NS_ENUM(NSInteger, FIRLoggerLevel) { 5 | FIRLoggerLevelError = 3 /*ASL_LEVEL_ERR*/, 6 | FIRLoggerLevelWarning = 4 /*ASL_LEVEL_WARNING*/, 7 | FIRLoggerLevelNotice = 5 /*ASL_LEVEL_NOTICE*/, 8 | FIRLoggerLevelInfo = 6 /*ASL_LEVEL_INFO*/, 9 | FIRLoggerLevelDebug = 7 /*ASL_LEVEL_DEBUG*/, 10 | FIRLoggerLevelMin = FIRLoggerLevelError, 11 | FIRLoggerLevelMax = FIRLoggerLevelDebug 12 | }; 13 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIROptions.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | /** 4 | * This class provides constant fields of Google APIs. 5 | */ 6 | @interface FIROptions : NSObject 7 | 8 | /** 9 | * Returns the default options. 10 | */ 11 | + (FIROptions *)defaultOptions; 12 | 13 | /** 14 | * An iOS API key used for authenticating requests from your app, e.g. 15 | * @"AIzaSyDdVgKwhZl0sTTTLZ7iTmt1r3N2cJLnaDk", used to identify your app to Google servers. 16 | */ 17 | @property(nonatomic, readonly, copy) NSString *APIKey; 18 | 19 | /** 20 | * The OAuth2 client ID for iOS application used to authenticate Google users, for example 21 | * @"12345.apps.googleusercontent.com", used for signing in with Google. 22 | */ 23 | @property(nonatomic, readonly, copy) NSString *clientID; 24 | 25 | /** 26 | * The tracking ID for Google Analytics, e.g. @"UA-12345678-1", used to configure Google Analytics. 27 | */ 28 | @property(nonatomic, readonly, copy) NSString *trackingID; 29 | 30 | /** 31 | * The Project Number from the Google Developer's console, for example @"012345678901", used to 32 | * configure Google Cloud Messaging. 33 | */ 34 | @property(nonatomic, readonly, copy) NSString *GCMSenderID; 35 | 36 | /** 37 | * The Project ID from the Firebase console, for example @"abc-xyz-123". Currently only populated 38 | * when using [FIROptions defaultOptions]. 39 | */ 40 | @property(nonatomic, readonly, copy) NSString *projectID; 41 | 42 | /** 43 | * The Android client ID used in Google AppInvite when an iOS app has its Android version, for 44 | * example @"12345.apps.googleusercontent.com". 45 | */ 46 | @property(nonatomic, readonly, copy) NSString *androidClientID; 47 | 48 | /** 49 | * The Google App ID that is used to uniquely identify an instance of an app. 50 | */ 51 | @property(nonatomic, readonly, copy) NSString *googleAppID; 52 | 53 | /** 54 | * The database root URL, e.g. @"http://abc-xyz-123.firebaseio.com". 55 | */ 56 | @property(nonatomic, readonly, copy) NSString *databaseURL; 57 | 58 | /** 59 | * The URL scheme used to set up Durable Deep Link service. 60 | */ 61 | @property(nonatomic, readwrite, copy) NSString *deepLinkURLScheme; 62 | 63 | /** 64 | * The Google Cloud Storage bucket name, e.g. @"abc-xyz-123.storage.firebase.com". 65 | */ 66 | @property(nonatomic, readonly, copy) NSString *storageBucket; 67 | 68 | /** 69 | * Initializes a customized instance of FIROptions with keys. googleAppID, bundleID and GCMSenderID 70 | * are required. Other keys may required for configuring specific services. 71 | */ 72 | - (instancetype)initWithGoogleAppID:(NSString *)googleAppID 73 | bundleID:(NSString *)bundleID 74 | GCMSenderID:(NSString *)GCMSenderID 75 | APIKey:(NSString *)APIKey 76 | clientID:(NSString *)clientID 77 | trackingID:(NSString *)trackingID 78 | androidClientID:(NSString *)androidClientID 79 | databaseURL:(NSString *)databaseURL 80 | storageBucket:(NSString *)storageBucket 81 | deepLinkURLScheme:(NSString *)deepLinkURLScheme; 82 | 83 | /** 84 | * Initializes a customized instance of FIROptions from the file at the given plist file path. 85 | * For example, 86 | * NSString *filePath = 87 | * [[NSBundle mainBundle] pathForResource:@"GoogleService-Info" ofType:@"plist"]; 88 | * FIROptions *options = [[FIROptions alloc] initWithContentsOfFile:filePath]; 89 | * Returns nil if the plist file does not exist or is invalid. 90 | */ 91 | - (instancetype)initWithContentsOfFile:(NSString *)plistPath; 92 | 93 | @end 94 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FirebaseCore.h: -------------------------------------------------------------------------------- 1 | #import "FIRAnalyticsConfiguration.h" 2 | #import "FIRApp.h" 3 | #import "FIRConfiguration.h" 4 | #import "FIRLoggerLevel.h" 5 | #import "FIROptions.h" 6 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module FirebaseCore { 2 | umbrella header "FirebaseCore.h" 3 | export * 4 | module * { export *} 5 | link "c++" 6 | link "z" 7 | } -------------------------------------------------------------------------------- /vendor/Pods/FirebaseDatabase/Frameworks/FirebaseDatabase.framework/FirebaseDatabase: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubymotion-community/motion-firebase/4c852dc2ebbd20ae0fd1d27d851e02ebf6e03360/vendor/Pods/FirebaseDatabase/Frameworks/FirebaseDatabase.framework/FirebaseDatabase -------------------------------------------------------------------------------- /vendor/Pods/FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Headers/FIRDataEventType.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Firebase iOS Client Library 3 | * 4 | * Copyright © 2013 Firebase - All Rights Reserved 5 | * https://www.firebase.com 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions are met: 9 | * 10 | * 1. Redistributions of source code must retain the above copyright notice, this 11 | * list of conditions and the following disclaimer. 12 | * 13 | * 2. Redistributions in binaryform must reproduce the above copyright notice, 14 | * this list of conditions and the following disclaimer in the documentation 15 | * and/or other materials provided with the distribution. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY FIREBASE AS IS AND ANY EXPRESS OR 18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 20 | * EVENT SHALL FIREBASE BE LIABLE FOR ANY DIRECT, 21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 22 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25 | * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 26 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | #ifndef Firebase_FIRDataEventType_h 30 | #define Firebase_FIRDataEventType_h 31 | 32 | /** 33 | * This enum is the set of events that you can observe at a Firebase Database location. 34 | */ 35 | typedef NS_ENUM(NSInteger, FIRDataEventType) { 36 | FIRDataEventTypeChildAdded, // 0, fired when a new child node is added to a location 37 | FIRDataEventTypeChildRemoved, // 1, fired when a child node is removed from a location 38 | FIRDataEventTypeChildChanged, // 2, fired when a child node at a location changes 39 | FIRDataEventTypeChildMoved, // 3, fired when a child node moves relative to the other child nodes at a location 40 | FIRDataEventTypeValue // 4, fired when any data changes at a location and, recursively, any children 41 | }; 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Headers/FIRDataSnapshot.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Firebase iOS Client Library 3 | * 4 | * Copyright © 2013 Firebase - All Rights Reserved 5 | * https://www.firebase.com 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions are met: 9 | * 10 | * 1. Redistributions of source code must retain the above copyright notice, this 11 | * list of conditions and the following disclaimer. 12 | * 13 | * 2. Redistributions in binaryform must reproduce the above copyright notice, 14 | * this list of conditions and the following disclaimer in the documentation 15 | * and/or other materials provided with the distribution. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY FIREBASE AS IS AND ANY EXPRESS OR 18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 20 | * EVENT SHALL FIREBASE BE LIABLE FOR ANY DIRECT, 21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 22 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25 | * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 26 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | #import 30 | 31 | NS_ASSUME_NONNULL_BEGIN 32 | 33 | @class FIRDatabaseReference; 34 | 35 | /** 36 | * A FIRDataSnapshot contains data from a Firebase Database location. Any time you read 37 | * Firebase data, you receive the data as a FIRDataSnapshot. 38 | * 39 | * FIRDataSnapshots are passed to the blocks you attach with observeEventType:withBlock: or observeSingleEvent:withBlock:. 40 | * They are efficiently-generated immutable copies of the data at a Firebase Database location. 41 | * They can't be modified and will never change. To modify data at a location, 42 | * use a FIRDatabaseReference (e.g. with setValue:). 43 | */ 44 | @interface FIRDataSnapshot : NSObject 45 | 46 | 47 | /** @name Navigating and inspecting a snapshot */ 48 | 49 | /** 50 | * Gets a FIRDataSnapshot for the location at the specified relative path. 51 | * The relative path can either be a simple child key (e.g. 'fred') 52 | * or a deeper slash-separated path (e.g. 'fred/name/first'). If the child 53 | * location has no data, an empty FIRDataSnapshot is returned. 54 | * 55 | * @param childPathString A relative path to the location of child data. 56 | * @return The FIRDataSnapshot for the child location. 57 | */ 58 | - (FIRDataSnapshot *)childSnapshotForPath:(NSString *)childPathString; 59 | 60 | 61 | /** 62 | * Return YES if the specified child exists. 63 | * 64 | * @param childPathString A relative path to the location of a potential child. 65 | * @return YES if data exists at the specified childPathString, else NO. 66 | */ 67 | - (BOOL) hasChild:(NSString *)childPathString; 68 | 69 | 70 | /** 71 | * Return YES if the DataSnapshot has any children. 72 | * 73 | * @return YES if this snapshot has any children, else NO. 74 | */ 75 | - (BOOL) hasChildren; 76 | 77 | 78 | /** 79 | * Return YES if the DataSnapshot contains a non-null value. 80 | * 81 | * @return YES if this snapshot contains a non-null value, else NO. 82 | */ 83 | - (BOOL) exists; 84 | 85 | 86 | /** @name Data export */ 87 | 88 | /** 89 | * Returns the raw value at this location, coupled with any metadata, such as priority. 90 | * 91 | * Priorities, where they exist, are accessible under the ".priority" key in instances of NSDictionary. 92 | * For leaf locations with priorities, the value will be under the ".value" key. 93 | */ 94 | - (id __nullable) valueInExportFormat; 95 | 96 | 97 | /** @name Properties */ 98 | 99 | /** 100 | * Returns the contents of this data snapshot as native types. 101 | * 102 | * Data types returned: 103 | * * NSDictionary 104 | * * NSArray 105 | * * NSNumber (also includes booleans) 106 | * * NSString 107 | * 108 | * @return The data as a native object. 109 | */ 110 | @property (strong, readonly, nonatomic, nullable) id value; 111 | 112 | 113 | /** 114 | * Gets the number of children for this DataSnapshot. 115 | * 116 | * @return An integer indicating the number of children. 117 | */ 118 | @property (readonly, nonatomic) NSUInteger childrenCount; 119 | 120 | 121 | /** 122 | * Gets a FIRDatabaseReference for the location that this data came from 123 | * 124 | * @return A FIRDatabaseReference instance for the location of this data 125 | */ 126 | @property (nonatomic, readonly, strong) FIRDatabaseReference * ref; 127 | 128 | 129 | /** 130 | * The key of the location that generated this FIRDataSnapshot. 131 | * 132 | * @return An NSString containing the key for the location of this FIRDataSnapshot. 133 | */ 134 | @property (strong, readonly, nonatomic) NSString* key; 135 | 136 | 137 | /** 138 | * An iterator for snapshots of the child nodes in this snapshot. 139 | * You can use the native for..in syntax: 140 | * 141 | * for (FIRDataSnapshot* child in snapshot.children) { 142 | * ... 143 | * } 144 | * 145 | * @return An NSEnumerator of the children 146 | */ 147 | @property (strong, readonly, nonatomic) NSEnumerator* children; 148 | 149 | /** 150 | * The priority of the data in this FIRDataSnapshot. 151 | * 152 | * @return The priority as a string, or nil if no priority was set. 153 | */ 154 | @property (strong, readonly, nonatomic, nullable) id priority; 155 | 156 | @end 157 | 158 | NS_ASSUME_NONNULL_END 159 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Headers/FIRDatabase.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Firebase iOS Client Library 3 | * 4 | * Copyright © 2013 Firebase - All Rights Reserved 5 | * https://www.firebase.com 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions are met: 9 | * 10 | * 1. Redistributions of source code must retain the above copyright notice, this 11 | * list of conditions and the following disclaimer. 12 | * 13 | * 2. Redistributions in binaryform must reproduce the above copyright notice, 14 | * this list of conditions and the following disclaimer in the documentation 15 | * and/or other materials provided with the distribution. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY FIREBASE AS IS AND ANY EXPRESS OR 18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 20 | * EVENT SHALL FIREBASE BE LIABLE FOR ANY DIRECT, 21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 22 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25 | * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 26 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | #import 30 | #import "FIRDatabaseReference.h" 31 | 32 | @class FIRApp; 33 | 34 | NS_ASSUME_NONNULL_BEGIN 35 | 36 | /** 37 | * The entry point for accessing a Firebase Database. You can get an instance by calling 38 | * [FIRDatabase database]. To access a location in the database and read or write data, 39 | * use [FIRDatabase reference]. 40 | */ 41 | @interface FIRDatabase : NSObject 42 | 43 | /** 44 | * Gets the instance of FIRDatabase for the default FIRApp. 45 | * 46 | * @return A FIRDatabase instance. 47 | */ 48 | + (FIRDatabase *) database NS_SWIFT_NAME(database()); 49 | 50 | /** 51 | * Gets an instance of FIRDatabase for a specific FIRApp. 52 | * 53 | * @param app The FIRApp to get a FIRDatabase for. 54 | * @return A FIRDatabase instance. 55 | */ 56 | + (FIRDatabase *) databaseForApp:(FIRApp*)app NS_SWIFT_NAME(database(app:)); 57 | 58 | /** The FIRApp instance to which this FIRDatabase belongs. */ 59 | @property (weak, readonly, nonatomic) FIRApp *app; 60 | 61 | /** 62 | * Gets a FIRDatabaseReference for the root of your Firebase Database. 63 | */ 64 | - (FIRDatabaseReference *) reference; 65 | 66 | /** 67 | * Gets a FIRDatabaseReference for the provided path. 68 | * 69 | * @param path Path to a location in your Firebase Database. 70 | * @return A FIRDatabaseReference pointing to the specified path. 71 | */ 72 | - (FIRDatabaseReference *) referenceWithPath:(NSString *)path; 73 | 74 | /** 75 | * Gets a FIRDatabaseReference for the provided URL. The URL must be a URL to a path 76 | * within this Firebase Database. To create a FIRDatabaseReference to a different database, 77 | * create a FIRApp} with a FIROptions object configured with the appropriate database URL. 78 | * 79 | * @param url A URL to a path within your database. 80 | * @return A FIRDatabaseReference for the provided URL. 81 | */ 82 | - (FIRDatabaseReference *) referenceFromURL:(NSString *)databaseUrl; 83 | 84 | /** 85 | * The Firebase Database client automatically queues writes and sends them to the server at the earliest opportunity, 86 | * depending on network connectivity. In some cases (e.g. offline usage) there may be a large number of writes 87 | * waiting to be sent. Calling this method will purge all outstanding writes so they are abandoned. 88 | * 89 | * All writes will be purged, including transactions and onDisconnect writes. The writes will 90 | * be rolled back locally, perhaps triggering events for affected event listeners, and the client will not 91 | * (re-)send them to the Firebase Database backend. 92 | */ 93 | - (void)purgeOutstandingWrites; 94 | 95 | /** 96 | * Shuts down our connection to the Firebase Database backend until goOnline is called. 97 | */ 98 | - (void)goOffline; 99 | 100 | /** 101 | * Resumes our connection to the Firebase Database backend after a previous goOffline call. 102 | */ 103 | - (void)goOnline; 104 | 105 | /** 106 | * The Firebase Database client will cache synchronized data and keep track of all writes you've 107 | * initiated while your application is running. It seamlessly handles intermittent network 108 | * connections and re-sends write operations when the network connection is restored. 109 | * 110 | * However by default your write operations and cached data are only stored in-memory and will 111 | * be lost when your app restarts. By setting this value to `YES`, the data will be persisted 112 | * to on-device (disk) storage and will thus be available again when the app is restarted 113 | * (even when there is no network connectivity at that time). Note that this property must be 114 | * set before creating your first Database reference and only needs to be called once per 115 | * application. 116 | * 117 | */ 118 | @property (nonatomic) BOOL persistenceEnabled; 119 | 120 | /** 121 | * Sets the dispatch queue on which all events are raised. The default queue is the main queue. 122 | * 123 | * Note that this must be set before creating your first Database reference. 124 | */ 125 | @property (nonatomic, strong) dispatch_queue_t callbackQueue; 126 | 127 | /** 128 | * Enables verbose diagnostic logging. 129 | * @param enabled YES to enable logging, NO to disable. 130 | */ 131 | + (void) setLoggingEnabled:(BOOL)enabled; 132 | 133 | /** Retrieve the Firebase Database SDK version. */ 134 | + (NSString *) sdkVersion; 135 | 136 | @end 137 | 138 | NS_ASSUME_NONNULL_END 139 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Headers/FIRMutableData.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Firebase iOS Client Library 3 | * 4 | * Copyright © 2013 Firebase - All Rights Reserved 5 | * https://www.firebase.com 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions are met: 9 | * 10 | * 1. Redistributions of source code must retain the above copyright notice, this 11 | * list of conditions and the following disclaimer. 12 | * 13 | * 2. Redistributions in binaryform must reproduce the above copyright notice, 14 | * this list of conditions and the following disclaimer in the documentation 15 | * and/or other materials provided with the distribution. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY FIREBASE AS IS AND ANY EXPRESS OR 18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 20 | * EVENT SHALL FIREBASE BE LIABLE FOR ANY DIRECT, 21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 22 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25 | * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 26 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | #import 30 | 31 | NS_ASSUME_NONNULL_BEGIN 32 | 33 | /** 34 | * A FIRMutableData instance is populated with data from a Firebase Database location. 35 | * When you are using runTransactionBlock:, you will be given an instance containing the current 36 | * data at that location. Your block will be responsible for updating that instance to the data 37 | * you wish to save at that location, and then returning using [FIRTransactionResult successWithValue:]. 38 | * 39 | * To modify the data, set its value property to any of the native types support by Firebase Database: 40 | * * NSNumber (includes BOOL) 41 | * * NSDictionary 42 | * * NSArray 43 | * * NSString 44 | * * nil / NSNull to remove the data 45 | * 46 | * Note that changes made to a child FIRMutableData instance will be visible to the parent. 47 | */ 48 | @interface FIRMutableData : NSObject 49 | 50 | 51 | /** @name Inspecting and navigating the data */ 52 | 53 | 54 | /** 55 | * Returns boolean indicating whether this mutable data has children. 56 | * 57 | * @return YES if this data contains child nodes. 58 | */ 59 | - (BOOL) hasChildren; 60 | 61 | 62 | /** 63 | * Indicates whether this mutable data has a child at the given path. 64 | * 65 | * @param path A path string, consisting either of a single segment, like 'child', or multiple segments, 'a/deeper/child' 66 | * @return YES if this data contains a child at the specified relative path 67 | */ 68 | - (BOOL) hasChildAtPath:(NSString *)path; 69 | 70 | 71 | /** 72 | * Used to obtain a FIRMutableData instance that encapsulates the data at the given relative path. 73 | * Note that changes made to the child will be visible to the parent. 74 | * 75 | * @param path A path string, consisting either of a single segment, like 'child', or multiple segments, 'a/deeper/child' 76 | * @return A FIRMutableData instance containing the data at the given path 77 | */ 78 | - (FIRMutableData *)childDataByAppendingPath:(NSString *)path; 79 | 80 | 81 | /** @name Properties */ 82 | 83 | 84 | /** 85 | * To modify the data contained by this instance of FIRMutableData, set this to any of the native types supported by Firebase Database: 86 | * 87 | * * NSNumber (includes BOOL) 88 | * * NSDictionary 89 | * * NSArray 90 | * * NSString 91 | * * nil / NSNull to remove the data 92 | * 93 | * Note that setting this value will override the priority at this location. 94 | * 95 | * @return The current data at this location as a native object 96 | */ 97 | @property (strong, nonatomic, nullable) id value; 98 | 99 | 100 | /** 101 | * Set this property to update the priority of the data at this location. Can be set to the following types: 102 | * 103 | * * NSNumber 104 | * * NSString 105 | * * nil / NSNull to remove the priority 106 | * 107 | * @return The priority of the data at this location 108 | */ 109 | @property (strong, nonatomic, nullable) id priority; 110 | 111 | 112 | /** 113 | * @return The number of child nodes at this location 114 | */ 115 | @property (readonly, nonatomic) NSUInteger childrenCount; 116 | 117 | 118 | /** 119 | * Used to iterate over the children at this location. You can use the native for .. in syntax: 120 | * 121 | * for (FIRMutableData* child in data.children) { 122 | * ... 123 | * } 124 | * 125 | * Note that this enumerator operates on an immutable copy of the child list. So, you can modify the instance 126 | * during iteration, but the new additions will not be visible until you get a new enumerator. 127 | */ 128 | @property (readonly, nonatomic, strong) NSEnumerator* children; 129 | 130 | 131 | /** 132 | * @return The key name of this node, or nil if it is the top-most location 133 | */ 134 | @property (readonly, nonatomic, strong, nullable) NSString* key; 135 | 136 | 137 | @end 138 | 139 | NS_ASSUME_NONNULL_END 140 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Headers/FIRServerValue.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Firebase iOS Client Library 3 | * 4 | * Copyright © 2013 Firebase - All Rights Reserved 5 | * https://www.firebase.com 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions are met: 9 | * 10 | * 1. Redistributions of source code must retain the above copyright notice, this 11 | * list of conditions and the following disclaimer. 12 | * 13 | * 2. Redistributions in binaryform must reproduce the above copyright notice, 14 | * this list of conditions and the following disclaimer in the documentation 15 | * and/or other materials provided with the distribution. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY FIREBASE AS IS AND ANY EXPRESS OR 18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 20 | * EVENT SHALL FIREBASE BE LIABLE FOR ANY DIRECT, 21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 22 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25 | * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 26 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | NS_ASSUME_NONNULL_BEGIN 30 | 31 | /** 32 | * Placeholder values you may write into Firebase Database as a value or priority 33 | * that will automatically be populated by the Firebase Database server. 34 | */ 35 | @interface FIRServerValue : NSObject 36 | 37 | /** 38 | * Placeholder value for the number of milliseconds since the Unix epoch 39 | */ 40 | + (NSDictionary *) timestamp; 41 | 42 | @end 43 | 44 | NS_ASSUME_NONNULL_END 45 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Headers/FIRTransactionResult.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Firebase iOS Client Library 3 | * 4 | * Copyright © 2013 Firebase - All Rights Reserved 5 | * https://www.firebase.com 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions are met: 9 | * 10 | * 1. Redistributions of source code must retain the above copyright notice, this 11 | * list of conditions and the following disclaimer. 12 | * 13 | * 2. Redistributions in binaryform must reproduce the above copyright notice, 14 | * this list of conditions and the following disclaimer in the documentation 15 | * and/or other materials provided with the distribution. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY FIREBASE AS IS AND ANY EXPRESS OR 18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 20 | * EVENT SHALL FIREBASE BE LIABLE FOR ANY DIRECT, 21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 22 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25 | * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 26 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | #import 30 | #import "FIRMutableData.h" 31 | 32 | NS_ASSUME_NONNULL_BEGIN 33 | 34 | /** 35 | * Used for runTransactionBlock:. An FIRTransactionResult instance is a container for the results of the transaction. 36 | */ 37 | @interface FIRTransactionResult : NSObject 38 | 39 | /** 40 | * Used for runTransactionBlock:. Indicates that the new value should be saved at this location 41 | * 42 | * @param value A FIRMutableData instance containing the new value to be set 43 | * @return An FIRTransactionResult instance that can be used as a return value from the block given to runTransactionBlock: 44 | */ 45 | + (FIRTransactionResult *)successWithValue:(FIRMutableData *)value; 46 | 47 | 48 | /** 49 | * Used for runTransactionBlock:. Indicates that the current transaction should no longer proceed. 50 | * 51 | * @return An FIRTransactionResult instance that can be used as a return value from the block given to runTransactionBlock: 52 | */ 53 | + (FIRTransactionResult *) abort; 54 | 55 | @end 56 | 57 | NS_ASSUME_NONNULL_END 58 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Headers/FirebaseDatabase.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Firebase iOS Client Library 3 | * 4 | * Copyright © 2016 Firebase - All Rights Reserved 5 | * https://www.firebase.com 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions are met: 9 | * 10 | * 1. Redistributions of source code must retain the above copyright notice, this 11 | * list of conditions and the following disclaimer. 12 | * 13 | * 2. Redistributions in binaryform must reproduce the above copyright notice, 14 | * this list of conditions and the following disclaimer in the documentation 15 | * and/or other materials provided with the distribution. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY FIREBASE AS IS AND ANY EXPRESS OR 18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 20 | * EVENT SHALL FIREBASE BE LIABLE FOR ANY DIRECT, 21 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 22 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25 | * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 26 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | #ifndef FirebaseDatabase_h 30 | #define FirebaseDatabase_h 31 | 32 | #import "FIRDatabase.h" 33 | #import "FIRDatabaseQuery.h" 34 | #import "FIRDatabaseReference.h" 35 | #import "FIRDataEventType.h" 36 | #import "FIRDataSnapshot.h" 37 | #import "FIRMutableData.h" 38 | #import "FIRServerValue.h" 39 | #import "FIRTransactionResult.h" 40 | 41 | #endif /* FirebaseDatabase_h */ 42 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubymotion-community/motion-firebase/4c852dc2ebbd20ae0fd1d27d851e02ebf6e03360/vendor/Pods/FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Info.plist -------------------------------------------------------------------------------- /vendor/Pods/FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module FirebaseDatabase { 2 | umbrella header "FirebaseDatabase.h" 3 | 4 | export * 5 | module * { export * } 6 | 7 | link framework "CFNetwork" 8 | link framework "Security" 9 | link framework "SystemConfiguration" 10 | 11 | link "c++" 12 | link "icucore" 13 | } 14 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseDatabase/Frameworks/FirebaseDatabase.framework/NOTICE: -------------------------------------------------------------------------------- 1 | Google LevelDB 2 | Copyright (c) 2011 The LevelDB Authors. All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 11 | 12 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 13 | 14 | -- 15 | 16 | Square Socket Rocket 17 | Copyright 2012 Square Inc. 18 | 19 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at 20 | 21 | http://www.apache.org/licenses/LICENSE-2.0 22 | 23 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 24 | 25 | -- 26 | 27 | APLevelDB 28 | Created by Adam Preble on 1/23/12. 29 | Copyright (c) 2012 Adam Preble. All rights reserved. 30 | 31 | Permission is hereby granted, free of charge, to any person obtaining a copy 32 | of this software and associated documentation files (the "Software"), to deal 33 | in the Software without restriction, including without limitation the rights 34 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 35 | copies of the Software, and to permit persons to whom the Software is 36 | furnished to do so, subject to the following conditions: 37 | 38 | The above copyright notice and this permission notice shall be included in 39 | all copies or substantial portions of the Software. 40 | 41 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 42 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 43 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 44 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 45 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 46 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 47 | THE SOFTWARE. 48 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseInstanceID/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # 2017-03-31 -- v1.0.10 2 | 3 | - Improvements to token-fetching logic 4 | - Fixed some warnings in Instance ID 5 | - Improved error messages if Instance ID couldn't be initialized properly 6 | - Improvements to console logging 7 | 8 | # 2017-01-31 -- v1.0.9 9 | 10 | - Removed an error being mistakenly logged to the console. 11 | 12 | # 2016-07-06 -- v1.0.8 13 | 14 | - Don't store InstanceID plists in Documents folder. 15 | 16 | # 2016-06-19 -- v1.0.7 17 | 18 | - Fix remote-notifications warning on app submission. 19 | 20 | # 2016-05-16 -- v1.0.6 21 | 22 | - Fix CocoaPod linter issues for InstanceID pod. 23 | 24 | # 2016-05-13 -- v1.0.5 25 | 26 | - Fix Authorization errors for InstanceID tokens. 27 | 28 | # 2016-05-11 -- v1.0.4 29 | 30 | - Reduce wait for InstanceID token during parallel requests. 31 | 32 | # 2016-04-18 -- v1.0.3 33 | 34 | - Change flag to disable swizzling to *FirebaseAppDelegateProxyEnabled*. 35 | - Fix incessant Keychain errors while accessing InstanceID. 36 | - Fix max retries for fetching IID token. 37 | 38 | # 2016-04-18 -- v1.0.2 39 | 40 | - Register for remote notifications on iOS8+ in the SDK itself. 41 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubymotion-community/motion-firebase/4c852dc2ebbd20ae0fd1d27d851e02ebf6e03360/vendor/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID -------------------------------------------------------------------------------- /vendor/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FirebaseInstanceID.h: -------------------------------------------------------------------------------- 1 | #import "FIRInstanceID.h" 2 | -------------------------------------------------------------------------------- /vendor/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module FirebaseInstanceID { 2 | umbrella header "FirebaseInstanceID.h" 3 | export * 4 | module * { export *} 5 | link "c++" 6 | link "z" 7 | } -------------------------------------------------------------------------------- /vendor/Pods/FirebaseInstanceID/README.md: -------------------------------------------------------------------------------- 1 | # InstanceID SDK for iOS 2 | 3 | Instance ID provides a unique ID per instance of your apps and also provides a 4 | mechanism to authenticate and authorize actions, like sending messages via 5 | Firebase Cloud Messaging (FCM). 6 | 7 | 8 | Please visit [our developer 9 | site](https://developers.google.com/instance-id/) for integration instructions, 10 | documentation, support information, and terms of service. 11 | -------------------------------------------------------------------------------- /vendor/Pods/GoogleNetworkingUtilities/Frameworks/frameworks/GoogleNetworkingUtilities.framework/GoogleNetworkingUtilities: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubymotion-community/motion-firebase/4c852dc2ebbd20ae0fd1d27d851e02ebf6e03360/vendor/Pods/GoogleNetworkingUtilities/Frameworks/frameworks/GoogleNetworkingUtilities.framework/GoogleNetworkingUtilities -------------------------------------------------------------------------------- /vendor/Pods/GoogleParsingUtilities/Frameworks/frameworks/GoogleParsingUtilities.framework/GoogleParsingUtilities: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubymotion-community/motion-firebase/4c852dc2ebbd20ae0fd1d27d851e02ebf6e03360/vendor/Pods/GoogleParsingUtilities/Frameworks/frameworks/GoogleParsingUtilities.framework/GoogleParsingUtilities -------------------------------------------------------------------------------- /vendor/Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubymotion-community/motion-firebase/4c852dc2ebbd20ae0fd1d27d851e02ebf6e03360/vendor/Pods/GoogleSymbolUtilities/Frameworks/frameworks/GoogleSymbolUtilities.framework/GoogleSymbolUtilities -------------------------------------------------------------------------------- /vendor/Pods/GoogleToolboxForMac/README.md: -------------------------------------------------------------------------------- 1 | # GTM: Google Toolbox for Mac # 2 | 3 | **Project site**
4 | **Discussion group** 5 | 6 | # Google Toolbox for Mac # 7 | 8 | A collection of source from different Google projects that may be of use to 9 | developers working other iOS or OS X projects. 10 | 11 | If you find a problem/bug or want a new feature to be included in the Google 12 | Toolbox for Mac, please join the 13 | [discussion group](http://groups.google.com/group/google-toolbox-for-mac) 14 | or submit an 15 | [issue](https://github.com/google/google-toolbox-for-mac/issues). 16 | -------------------------------------------------------------------------------- /vendor/Pods/GoogleUtilities/Frameworks/frameworks/GoogleUtilities.framework/GoogleUtilities: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubymotion-community/motion-firebase/4c852dc2ebbd20ae0fd1d27d851e02ebf6e03360/vendor/Pods/GoogleUtilities/Frameworks/frameworks/GoogleUtilities.framework/GoogleUtilities -------------------------------------------------------------------------------- /vendor/Pods/Headers/Private/Firebase/Firebase.h: -------------------------------------------------------------------------------- 1 | ../../../Firebase/Analytics/Sources/Firebase.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Private/GoogleToolboxForMac/GTMDefines.h: -------------------------------------------------------------------------------- 1 | ../../../GoogleToolboxForMac/GTMDefines.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Private/GoogleToolboxForMac/GTMNSData+zlib.h: -------------------------------------------------------------------------------- 1 | ../../../GoogleToolboxForMac/Foundation/GTMNSData+zlib.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/Firebase/Firebase.h: -------------------------------------------------------------------------------- 1 | ../../../Firebase/Analytics/Sources/Firebase.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRAnalytics+AppDelegate.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics+AppDelegate.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRAnalytics.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalytics.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRAnalyticsConfiguration.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsConfiguration.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRApp.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRApp.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRConfiguration.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRConfiguration.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIREventNames.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIREventNames.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIROptions.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIROptions.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRParameterNames.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRParameterNames.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FIRUserPropertyNames.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseAnalytics/FirebaseAnalytics/FirebaseAnalytics.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseAuth/FirebaseAuth/FIRAuth.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/Headers/FIRAuth.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseAuth/FirebaseAuth/FIRAuthCredential.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/Headers/FIRAuthCredential.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseAuth/FirebaseAuth/FIRAuthErrors.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/Headers/FIRAuthErrors.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseAuth/FirebaseAuth/FIREmailPasswordAuthProvider.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/Headers/FIREmailPasswordAuthProvider.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseAuth/FirebaseAuth/FIRFacebookAuthProvider.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/Headers/FIRFacebookAuthProvider.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseAuth/FirebaseAuth/FIRGitHubAuthProvider.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/Headers/FIRGitHubAuthProvider.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseAuth/FirebaseAuth/FIRGoogleAuthProvider.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/Headers/FIRGoogleAuthProvider.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseAuth/FirebaseAuth/FIRTwitterAuthProvider.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/Headers/FIRTwitterAuthProvider.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseAuth/FirebaseAuth/FIRUser.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/Headers/FIRUser.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseAuth/FirebaseAuth/FIRUserInfo.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/Headers/FIRUserInfo.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseAuth/FirebaseAuth/FirebaseAuth.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseAuth/Frameworks/frameworks/FirebaseAuth.framework/Headers/FirebaseAuth.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRAnalyticsConfiguration.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRAnalyticsConfiguration.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRApp.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRApp.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRConfiguration.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRConfiguration.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIRLoggerLevel.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRLoggerLevel.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseCore/FirebaseCore/FIROptions.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIROptions.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseCore/FirebaseCore/FirebaseCore.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FirebaseCore.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseDatabase/FirebaseDatabase/FIRDataEventType.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Headers/FIRDataEventType.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseDatabase/FirebaseDatabase/FIRDataSnapshot.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Headers/FIRDataSnapshot.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseDatabase/FirebaseDatabase/FIRDatabase.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Headers/FIRDatabase.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseDatabase/FirebaseDatabase/FIRDatabaseQuery.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Headers/FIRDatabaseQuery.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseDatabase/FirebaseDatabase/FIRDatabaseReference.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Headers/FIRDatabaseReference.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseDatabase/FirebaseDatabase/FIRMutableData.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Headers/FIRMutableData.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseDatabase/FirebaseDatabase/FIRServerValue.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Headers/FIRServerValue.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseDatabase/FirebaseDatabase/FIRTransactionResult.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Headers/FIRTransactionResult.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseDatabase/FirebaseDatabase/FirebaseDatabase.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Headers/FirebaseDatabase.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseInstanceID/FirebaseInstanceID/FIRInstanceID.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FIRInstanceID.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/FirebaseInstanceID/FirebaseInstanceID/FirebaseInstanceID.h: -------------------------------------------------------------------------------- 1 | ../../../../FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FirebaseInstanceID.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/GoogleToolboxForMac/GTMDefines.h: -------------------------------------------------------------------------------- 1 | ../../../GoogleToolboxForMac/GTMDefines.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/GoogleToolboxForMac/GTMNSData+zlib.h: -------------------------------------------------------------------------------- 1 | ../../../GoogleToolboxForMac/Foundation/GTMNSData+zlib.h -------------------------------------------------------------------------------- /vendor/Pods/Headers/Public/____GoogleToolboxForMac-prefix.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /vendor/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Firebase/Analytics (3.4.0): 3 | - FirebaseAnalytics (~> 3.3) 4 | - Firebase/Auth (3.4.0): 5 | - Firebase/Analytics 6 | - FirebaseAuth (= 3.0.4) 7 | - Firebase/Database (3.4.0): 8 | - Firebase/Analytics 9 | - FirebaseDatabase (= 3.0.2) 10 | - FirebaseAnalytics (3.9.0): 11 | - FirebaseCore (~> 3.6) 12 | - FirebaseInstanceID (~> 1.0) 13 | - GoogleToolboxForMac/NSData+zlib (~> 2.1) 14 | - FirebaseAuth (3.0.4): 15 | - FirebaseAnalytics (~> 3.2) 16 | - GoogleNetworkingUtilities (~> 1.2) 17 | - GoogleParsingUtilities (~> 1.1) 18 | - GoogleUtilities (~> 1.2) 19 | - FirebaseCore (3.6.0): 20 | - GoogleToolboxForMac/NSData+zlib (~> 2.1) 21 | - FirebaseDatabase (3.0.2): 22 | - FirebaseAnalytics (~> 3.2) 23 | - FirebaseInstanceID (1.0.10): 24 | - FirebaseCore (~> 3.6) 25 | - GoogleNetworkingUtilities (1.2.2): 26 | - GoogleSymbolUtilities (~> 1.1) 27 | - GoogleParsingUtilities (1.1.2): 28 | - GoogleNetworkingUtilities (~> 1.2) 29 | - GoogleSymbolUtilities (~> 1.1) 30 | - GoogleSymbolUtilities (1.1.2) 31 | - GoogleToolboxForMac/Defines (2.1.1) 32 | - GoogleToolboxForMac/NSData+zlib (2.1.1): 33 | - GoogleToolboxForMac/Defines (= 2.1.1) 34 | - GoogleUtilities (1.3.2): 35 | - GoogleSymbolUtilities (~> 1.1) 36 | 37 | DEPENDENCIES: 38 | - Firebase/Auth (= 3.4) 39 | - Firebase/Database (= 3.4) 40 | 41 | SPEC CHECKSUMS: 42 | Firebase: 754562547af419cc2f4b15247fee419081924bc2 43 | FirebaseAnalytics: e5fe8486efc01bec33f6bf82e2fa9fce4b124052 44 | FirebaseAuth: 26fd291c3b552fc9658420b867520d5ae080421c 45 | FirebaseCore: 9691ee2ade70c098d7cf92440f4303f16d83ca75 46 | FirebaseDatabase: 59bea2e7dfd81b3b8b2f8e396caf1a52c2ced6f7 47 | FirebaseInstanceID: b9eedd6846fb5e1f0f7279e1deaa7a7e4cf8392e 48 | GoogleNetworkingUtilities: 3edd3a8161347494f2da60ea0deddc8a472d94cb 49 | GoogleParsingUtilities: d265e86f84c1ab595f6ca5172b22a7a10ce99e1f 50 | GoogleSymbolUtilities: 631ee17048aa5e9ab133470d768ea997a5ef9b96 51 | GoogleToolboxForMac: 8e329f1b599f2512c6b10676d45736bcc2cbbeb0 52 | GoogleUtilities: 8bbc733218aad26306f9d4a253823986110e3358 53 | 54 | PODFILE CHECKSUM: 26dc82b8ff758fac0bdbee1940895e2ee52f15c1 55 | 56 | COCOAPODS: 1.2.1 57 | -------------------------------------------------------------------------------- /vendor/Pods/Pods.xcodeproj/xcuserdata/Pick6.xcuserdatad/xcschemes/GoogleToolboxForMac.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /vendor/Pods/Pods.xcodeproj/xcuserdata/Pick6.xcuserdatad/xcschemes/Pods-RubyMotion.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /vendor/Pods/Pods.xcodeproj/xcuserdata/Pick6.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | GoogleToolboxForMac.xcscheme 8 | 9 | isShown 10 | 11 | 12 | Pods-RubyMotion.xcscheme 13 | 14 | isShown 15 | 16 | 17 | 18 | SuppressBuildableAutocreation 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /vendor/Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_GoogleToolboxForMac : NSObject 3 | @end 4 | @implementation PodsDummy_GoogleToolboxForMac 5 | @end 6 | -------------------------------------------------------------------------------- /vendor/Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /vendor/Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/GoogleToolboxForMac 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/GoogleToolboxForMac" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseAuth" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseDatabase" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" "${PODS_ROOT}/Headers/Public/GoogleNetworkingUtilities" "${PODS_ROOT}/Headers/Public/GoogleParsingUtilities" "${PODS_ROOT}/Headers/Public/GoogleSymbolUtilities" "${PODS_ROOT}/Headers/Public/GoogleToolboxForMac" "${PODS_ROOT}/Headers/Public/GoogleUtilities" 4 | OTHER_LDFLAGS = -l"z" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/GoogleToolboxForMac 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /vendor/Pods/Target Support Files/Pods-RubyMotion/Pods-RubyMotion-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_RubyMotion : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_RubyMotion 5 | @end 6 | -------------------------------------------------------------------------------- /vendor/Pods/Target Support Files/Pods-RubyMotion/Pods-RubyMotion-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 6 | 7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 8 | 9 | install_framework() 10 | { 11 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 12 | local source="${BUILT_PRODUCTS_DIR}/$1" 13 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 14 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 15 | elif [ -r "$1" ]; then 16 | local source="$1" 17 | fi 18 | 19 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 20 | 21 | if [ -L "${source}" ]; then 22 | echo "Symlinked..." 23 | source="$(readlink "${source}")" 24 | fi 25 | 26 | # use filter instead of exclude so missing patterns dont' throw errors 27 | echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 28 | rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 29 | 30 | local basename 31 | basename="$(basename -s .framework "$1")" 32 | binary="${destination}/${basename}.framework/${basename}" 33 | if ! [ -r "$binary" ]; then 34 | binary="${destination}/${basename}" 35 | fi 36 | 37 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 38 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 39 | strip_invalid_archs "$binary" 40 | fi 41 | 42 | # Resign the code if required by the build settings to avoid unstable apps 43 | code_sign_if_enabled "${destination}/$(basename "$1")" 44 | 45 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 46 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 47 | local swift_runtime_libs 48 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 49 | for lib in $swift_runtime_libs; do 50 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 51 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 52 | code_sign_if_enabled "${destination}/${lib}" 53 | done 54 | fi 55 | } 56 | 57 | # Signs a framework with the provided identity 58 | code_sign_if_enabled() { 59 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 60 | # Use the current code_sign_identitiy 61 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 62 | local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements '$1'" 63 | 64 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 65 | code_sign_cmd="$code_sign_cmd &" 66 | fi 67 | echo "$code_sign_cmd" 68 | eval "$code_sign_cmd" 69 | fi 70 | } 71 | 72 | # Strip invalid architectures 73 | strip_invalid_archs() { 74 | binary="$1" 75 | # Get architectures for current file 76 | archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" 77 | stripped="" 78 | for arch in $archs; do 79 | if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then 80 | # Strip non-valid architectures in-place 81 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 82 | stripped="$stripped $arch" 83 | fi 84 | done 85 | if [[ "$stripped" ]]; then 86 | echo "Stripped $binary of architectures:$stripped" 87 | fi 88 | } 89 | 90 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 91 | wait 92 | fi 93 | -------------------------------------------------------------------------------- /vendor/Pods/Target Support Files/Pods-RubyMotion/Pods-RubyMotion-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 5 | 6 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 7 | > "$RESOURCES_TO_COPY" 8 | 9 | XCASSET_FILES=() 10 | 11 | case "${TARGETED_DEVICE_FAMILY}" in 12 | 1,2) 13 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 14 | ;; 15 | 1) 16 | TARGET_DEVICE_ARGS="--target-device iphone" 17 | ;; 18 | 2) 19 | TARGET_DEVICE_ARGS="--target-device ipad" 20 | ;; 21 | 3) 22 | TARGET_DEVICE_ARGS="--target-device tv" 23 | ;; 24 | 4) 25 | TARGET_DEVICE_ARGS="--target-device watch" 26 | ;; 27 | *) 28 | TARGET_DEVICE_ARGS="--target-device mac" 29 | ;; 30 | esac 31 | 32 | install_resource() 33 | { 34 | if [[ "$1" = /* ]] ; then 35 | RESOURCE_PATH="$1" 36 | else 37 | RESOURCE_PATH="${PODS_ROOT}/$1" 38 | fi 39 | if [[ ! -e "$RESOURCE_PATH" ]] ; then 40 | cat << EOM 41 | error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. 42 | EOM 43 | exit 1 44 | fi 45 | case $RESOURCE_PATH in 46 | *.storyboard) 47 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 48 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 49 | ;; 50 | *.xib) 51 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 52 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 53 | ;; 54 | *.framework) 55 | echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 56 | mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 57 | echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 58 | rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 59 | ;; 60 | *.xcdatamodel) 61 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" 62 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" 63 | ;; 64 | *.xcdatamodeld) 65 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" 66 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" 67 | ;; 68 | *.xcmappingmodel) 69 | echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" 70 | xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" 71 | ;; 72 | *.xcassets) 73 | ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" 74 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 75 | ;; 76 | *) 77 | echo "$RESOURCE_PATH" 78 | echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" 79 | ;; 80 | esac 81 | } 82 | 83 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 84 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 85 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 86 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 87 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 88 | fi 89 | rm -f "$RESOURCES_TO_COPY" 90 | 91 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] 92 | then 93 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 94 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 95 | while read line; do 96 | if [[ $line != "${PODS_ROOT}*" ]]; then 97 | XCASSET_FILES+=("$line") 98 | fi 99 | done <<<"$OTHER_XCASSETS" 100 | 101 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 102 | fi 103 | -------------------------------------------------------------------------------- /vendor/Pods/Target Support Files/Pods-RubyMotion/Pods-RubyMotion.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/FirebaseAuth/Frameworks/frameworks" "${PODS_ROOT}/FirebaseCore/Frameworks" "${PODS_ROOT}/FirebaseDatabase/Frameworks" "${PODS_ROOT}/FirebaseInstanceID/Frameworks" "${PODS_ROOT}/GoogleNetworkingUtilities/Frameworks/frameworks" "${PODS_ROOT}/GoogleParsingUtilities/Frameworks/frameworks" "${PODS_ROOT}/GoogleSymbolUtilities/Frameworks/frameworks" "${PODS_ROOT}/GoogleUtilities/Frameworks/frameworks" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) ${PODS_ROOT}/Firebase/Analytics/Sources $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseAuth" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseDatabase" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" "${PODS_ROOT}/Headers/Public/GoogleNetworkingUtilities" "${PODS_ROOT}/Headers/Public/GoogleParsingUtilities" "${PODS_ROOT}/Headers/Public/GoogleSymbolUtilities" "${PODS_ROOT}/Headers/Public/GoogleToolboxForMac" "${PODS_ROOT}/Headers/Public/GoogleUtilities" 4 | LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/GoogleToolboxForMac" 5 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Firebase" -isystem "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" -isystem "${PODS_ROOT}/Headers/Public/FirebaseAuth" -isystem "${PODS_ROOT}/Headers/Public/FirebaseCore" -isystem "${PODS_ROOT}/Headers/Public/FirebaseDatabase" -isystem "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" -isystem "${PODS_ROOT}/Headers/Public/GoogleNetworkingUtilities" -isystem "${PODS_ROOT}/Headers/Public/GoogleParsingUtilities" -isystem "${PODS_ROOT}/Headers/Public/GoogleSymbolUtilities" -isystem "${PODS_ROOT}/Headers/Public/GoogleToolboxForMac" -isystem "${PODS_ROOT}/Headers/Public/GoogleUtilities" 6 | OTHER_LDFLAGS = $(inherited) -ObjC -l"GoogleToolboxForMac" -l"c++" -l"icucore" -l"sqlite3" -l"z" -framework "AddressBook" -framework "CFNetwork" -framework "CoreGraphics" -framework "FirebaseAnalytics" -framework "FirebaseAuth" -framework "FirebaseCore" -framework "FirebaseDatabase" -framework "FirebaseInstanceID" -framework "GoogleNetworkingUtilities" -framework "GoogleParsingUtilities" -framework "GoogleSymbolUtilities" -framework "GoogleUtilities" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" 7 | PODS_BUILD_DIR = $BUILD_DIR 8 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/.. 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | -------------------------------------------------------------------------------- /vendor/Pods/Target Support Files/Pods-RubyMotion/Pods-RubyMotion.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/FirebaseAnalytics/Frameworks" "${PODS_ROOT}/FirebaseAuth/Frameworks/frameworks" "${PODS_ROOT}/FirebaseCore/Frameworks" "${PODS_ROOT}/FirebaseDatabase/Frameworks" "${PODS_ROOT}/FirebaseInstanceID/Frameworks" "${PODS_ROOT}/GoogleNetworkingUtilities/Frameworks/frameworks" "${PODS_ROOT}/GoogleParsingUtilities/Frameworks/frameworks" "${PODS_ROOT}/GoogleSymbolUtilities/Frameworks/frameworks" "${PODS_ROOT}/GoogleUtilities/Frameworks/frameworks" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) ${PODS_ROOT}/Firebase/Analytics/Sources $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseAuth" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseDatabase" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" "${PODS_ROOT}/Headers/Public/GoogleNetworkingUtilities" "${PODS_ROOT}/Headers/Public/GoogleParsingUtilities" "${PODS_ROOT}/Headers/Public/GoogleSymbolUtilities" "${PODS_ROOT}/Headers/Public/GoogleToolboxForMac" "${PODS_ROOT}/Headers/Public/GoogleUtilities" 4 | LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/GoogleToolboxForMac" 5 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Firebase" -isystem "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" -isystem "${PODS_ROOT}/Headers/Public/FirebaseAuth" -isystem "${PODS_ROOT}/Headers/Public/FirebaseCore" -isystem "${PODS_ROOT}/Headers/Public/FirebaseDatabase" -isystem "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" -isystem "${PODS_ROOT}/Headers/Public/GoogleNetworkingUtilities" -isystem "${PODS_ROOT}/Headers/Public/GoogleParsingUtilities" -isystem "${PODS_ROOT}/Headers/Public/GoogleSymbolUtilities" -isystem "${PODS_ROOT}/Headers/Public/GoogleToolboxForMac" -isystem "${PODS_ROOT}/Headers/Public/GoogleUtilities" 6 | OTHER_LDFLAGS = $(inherited) -ObjC -l"GoogleToolboxForMac" -l"c++" -l"icucore" -l"sqlite3" -l"z" -framework "AddressBook" -framework "CFNetwork" -framework "CoreGraphics" -framework "FirebaseAnalytics" -framework "FirebaseAuth" -framework "FirebaseCore" -framework "FirebaseDatabase" -framework "FirebaseInstanceID" -framework "GoogleNetworkingUtilities" -framework "GoogleParsingUtilities" -framework "GoogleSymbolUtilities" -framework "GoogleUtilities" -framework "Security" -framework "StoreKit" -framework "SystemConfiguration" 7 | PODS_BUILD_DIR = $BUILD_DIR 8 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/.. 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | -------------------------------------------------------------------------------- /vendor/Pods/build-iPhoneSimulator/libGoogleToolboxForMac.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rubymotion-community/motion-firebase/4c852dc2ebbd20ae0fd1d27d851e02ebf6e03360/vendor/Pods/build-iPhoneSimulator/libGoogleToolboxForMac.a --------------------------------------------------------------------------------