Use the native Firebase SDK in Axway Titanium. This repository is part of the Titanium Firebase project.
The whole Firebase support in Titanium is developed and maintained by the community (@hansemannn
and @m1ga
). To keep
this project maintained and be able to use the latest Firebase SDK's, please see the "Sponsor" button of this repository,
thank you!
- The Firebase Core module
- Titanium SDK 6.3.0+
- Property format nested lists in this Readme
getReference(arguments)
->FirebaseDatabaseReference
ย -identifier
(String),path
(String) ORurl
(String) ย -observableEvents
([DATA_EVENT_TYPE_*
])
firebaseServerTimestamp
-
child(arguments)
->FirebaseDatabaseReference
identifier
(String),path
(String) ORurl
(String) ย -observableEvents
([DATA_EVENT_TYPE_*
])
-
childByAutoId(arguments)
->FirebaseDatabaseReference
identifier
(String),path
(String) ORurl
(String) ย -observableEvents
([DATA_EVENT_TYPE_*
])
-
root(arguments)
->FirebaseDatabaseReference
ย -observableEvents
([DATA_EVENT_TYPE_*
]) -
parent(arguments)
->FirebaseDatabaseReference
observableEvents
([DATA_EVENT_TYPE_*
])
-
setValue(value, callback)
value
(Any) ย -callback
(optional, Function)
-
removeValue(callback)
ย -callback
(optional, Function) -
updateChildValues(childValues, callback)
ย -childValues
(Dictionary) ย -callback
(optional, Function) -
setPriority(priority, callback)
ย -priority
(Any) ย -callback
(optional, Function) -
goOnline()
-
goOffline()
-
keepSynced(synced)
ย -synced
(Boolean)
-
key
(String) -
url
(String)
DATA_EVENT_TYPE_VALUE
DATA_EVENT_TYPE_CHILD_ADDED
DATA_EVENT_TYPE_CHILD_CHANGED
DATA_EVENT_TYPE_CHILD_MOVED
DATA_EVENT_TYPE_CHILD_REMOVED
Important note: Events are added and removed generically. They are only fired if you observe them via
the observableEvents
parameter.
value
(viaDATA_EVENT_TYPE_VALUE
)add
(viaDATA_EVENT_TYPE_CHILD_ADDED
)change
(viaDATA_EVENT_TYPE_CHILD_CHANGED
)move
(viaDATA_EVENT_TYPE_CHILD_MOVED
)remove
(viaDATA_EVENT_TYPE_CHILD_REMOVED
)
const win = Ti.UI.createWindow({layout:'vertical', title:'Firebase Database'});
const btn1 = Ti.UI.createButton({title:'add random item'});
const btn2 = Ti.UI.createButton({title:'delete last item'});
win.add([btn1, btn2])
// Require the Firebase Database module
const FirebaseDatabase = require('firebase.database');
var randomReference = null;
btn1.addEventListener('click', function(){
// Inserting values in firebase database
randomReference = FirebaseDatabase.getReference().childByAutoId({
path: 'user'
});
randomReference.setValue({
username: 'username',
email: '[email protected]',
password: 'ABCXYZ',
timestamp: FirebaseDatabase.firebaseServerTimestamp
}, function(e) {
Ti.API.info('Value written, snapshot: ' + JSON.stringify(e, null, 4));
});
})
btn2.addEventListener('click', function(){
if (randomReference) {
// remove last random item
randomReference.removeValue();
randomReference = null;
}
});
// insert fixed item
var fdRef = FirebaseDatabase.getReference().child({
path: 'user',
identifier: 'user1'
});
fdRef.setValue({
username: 'fixed username',
email: '[email protected]',
password: 'ABCXYZ_fixed',
timestamp: FirebaseDatabase.firebaseServerTimestamp
}, function(e) {
Ti.API.info('Value written, snapshot: ' + JSON.stringify(e, null, 4));
});
// Fetching values from Firebase database
var userRef = FirebaseDatabase.getReference({
path: 'user',
observableEvents: [FirebaseDatabase.DATA_EVENT_TYPE_CHILD_ADDED, FirebaseDatabase.DATA_EVENT_TYPE_VALUE]
});
userRef.addEventListener('value', function(e) {
Ti.API.info('DATA_EVENT_TYPE_VALUE, snapshot: ' + JSON.stringify(e));
});
userRef.addEventListener('add', function(e) {
Ti.API.info('DATA_EVENT_TYPE_CHILD_ADDED, snapshot: ' + JSON.stringify(e));
});
userRef.addEventListener('remove', function(e) {
Ti.API.info('removed value' + JSON.stringify(e));
});
win.open();
cd ios
appc run -p ios --build-only
This module is Copyright (c) 2018-present by Hans Knรถchel, Inc. All Rights Reserved.