diff --git a/.gitignore b/.gitignore
index cf1bcb7..2e5c1c3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -61,3 +61,5 @@ sysinfo.txt
# Crashlytics generated file
crashlytics-build.properties
+
+**/.DS_Store
\ No newline at end of file
diff --git a/Assets/FirebaseWebGL/Plugins/firebaseauth.jslib b/Assets/FirebaseWebGL/Plugins/firebaseauth.jslib
index c035d33..74e72ef 100644
--- a/Assets/FirebaseWebGL/Plugins/firebaseauth.jslib
+++ b/Assets/FirebaseWebGL/Plugins/firebaseauth.jslib
@@ -1,23 +1,25 @@
mergeInto(LibraryManager.library, {
- SignInAnonymously: function (objectName, callback, fallback) {
+ SignInAnonymously: function (objectName, id, callback, fallback) {
var parsedObjectName = UTF8ToString(objectName);
var parsedCallback = UTF8ToString(callback);
var parsedFallback = UTF8ToString(fallback);
try {
firebase.auth().signInAnonymously().then(function (result) {
- unityInstance.Module.SendMessage(parsedObjectName, parsedCallback, "Success: signed up for " + result);
+ unityInstance.Module.SendMessage(parsedObjectName, parsedCallback, JSON.stringify({id: id, result: "Success: signed up for " + result}));
}).catch(function (error) {
- unityInstance.Module.SendMessage(parsedObjectName, parsedFallback, JSON.stringify(error, Object.getOwnPropertyNames(error)));
+ var errorStringfy = JSON.stringify(error, Object.getOwnPropertyNames(error))
+ unityInstance.Module.SendMessage(parsedObjectName, parsedFallback, JSON.stringify({ id: id, result: JSON.parse(errorStringfy) }));
});
} catch (error) {
- unityInstance.Module.SendMessage(parsedObjectName, parsedFallback, JSON.stringify(error, Object.getOwnPropertyNames(error)));
+ var errorStringfy = JSON.stringify(error, Object.getOwnPropertyNames(error))
+ unityInstance.Module.SendMessage(parsedObjectName, parsedFallback, JSON.stringify({ id: id, result: JSON.parse(errorStringfy) }));
}
},
- CreateUserWithEmailAndPassword: function (email, password, objectName, callback, fallback) {
+ CreateUserWithEmailAndPassword: function (email, password, objectName, id, callback, fallback) {
var parsedEmail = UTF8ToString(email);
var parsedPassword = UTF8ToString(password);
var parsedObjectName = UTF8ToString(objectName);
@@ -27,17 +29,21 @@ mergeInto(LibraryManager.library, {
try {
firebase.auth().createUserWithEmailAndPassword(parsedEmail, parsedPassword).then(function (unused) {
- unityInstance.Module.SendMessage(parsedObjectName, parsedCallback, "Success: signed up for " + parsedEmail);
+
+ unityInstance.Module.SendMessage(parsedObjectName, parsedCallback, JSON.stringify({id: id, result: "Success: signed up for " + parsedEmail}));
}).catch(function (error) {
- unityInstance.Module.SendMessage(parsedObjectName, parsedFallback, JSON.stringify(error, Object.getOwnPropertyNames(error)));
+
+ var errorStringfy = JSON.stringify(error, Object.getOwnPropertyNames(error))
+ unityInstance.Module.SendMessage(parsedObjectName, parsedFallback, JSON.stringify({ id: id, result: JSON.parse(errorStringfy) }));
});
} catch (error) {
- unityInstance.Module.SendMessage(parsedObjectName, parsedFallback, JSON.stringify(error, Object.getOwnPropertyNames(error)));
+ var errorStringfy = JSON.stringify(error, Object.getOwnPropertyNames(error))
+ unityInstance.Module.SendMessage(parsedObjectName, parsedFallback, JSON.stringify({ id: id, result: JSON.parse(errorStringfy) }));
}
},
- SignInWithEmailAndPassword: function (email, password, objectName, callback, fallback) {
+ SignInWithEmailAndPassword: function (email, password, objectName, id, callback, fallback) {
var parsedEmail = UTF8ToString(email);
var parsedPassword = UTF8ToString(password);
var parsedObjectName = UTF8ToString(objectName);
@@ -47,17 +53,21 @@ mergeInto(LibraryManager.library, {
try {
firebase.auth().signInWithEmailAndPassword(parsedEmail, parsedPassword).then(function (unused) {
- unityInstance.Module.SendMessage(parsedObjectName, parsedCallback, "Success: signed in for " + parsedEmail);
+ unityInstance.Module.SendMessage(parsedObjectName, parsedCallback, JSON.stringify({id: id, result: "Success: signed in for " + parsedEmail}));
}).catch(function (error) {
- unityInstance.Module.SendMessage(parsedObjectName, parsedFallback, JSON.stringify(error, Object.getOwnPropertyNames(error)));
+
+ var errorStringfy = JSON.stringify(error, Object.getOwnPropertyNames(error))
+ unityInstance.Module.SendMessage(parsedObjectName, parsedFallback, JSON.stringify({ id: id, result: JSON.parse(errorStringfy) }));
});
} catch (error) {
- unityInstance.Module.SendMessage(parsedObjectName, parsedFallback, JSON.stringify(error, Object.getOwnPropertyNames(error)));
+
+ var errorStringfy = JSON.stringify(error, Object.getOwnPropertyNames(error))
+ unityInstance.Module.SendMessage(parsedObjectName, parsedFallback, JSON.stringify({ id: id, result: JSON.parse(errorStringfy) }));
}
},
- SignInWithGoogle: function (objectName, callback, fallback) {
+ SignInWithGoogle: function (objectName, id, callback, fallback) {
var parsedObjectName = UTF8ToString(objectName);
var parsedCallback = UTF8ToString(callback);
var parsedFallback = UTF8ToString(fallback);
@@ -65,17 +75,21 @@ mergeInto(LibraryManager.library, {
try {
var provider = new firebase.auth.GoogleAuthProvider();
firebase.auth().signInWithRedirect(provider).then(function (unused) {
- unityInstance.Module.SendMessage(parsedObjectName, parsedCallback, "Success: signed in with Google!");
+ unityInstance.Module.SendMessage(parsedObjectName, parsedCallback, JSON.stringify({id: id, result: "Success: signed in with Google!"}));
}).catch(function (error) {
- unityInstance.Module.SendMessage(parsedObjectName, parsedFallback, JSON.stringify(error, Object.getOwnPropertyNames(error)));
+
+ var errorStringfy = JSON.stringify(error, Object.getOwnPropertyNames(error))
+ unityInstance.Module.SendMessage(parsedObjectName, parsedFallback, JSON.stringify({ id: id, result: JSON.parse(errorStringfy) }));
});
} catch (error) {
- unityInstance.Module.SendMessage(parsedObjectName, parsedFallback, JSON.stringify(error, Object.getOwnPropertyNames(error)));
+
+ var errorStringfy = JSON.stringify(error, Object.getOwnPropertyNames(error))
+ unityInstance.Module.SendMessage(parsedObjectName, parsedFallback, JSON.stringify({ id: id, result: JSON.parse(errorStringfy) }));
}
},
- SignInWithFacebook: function (objectName, callback, fallback) {
+ SignInWithFacebook: function (objectName, id, callback, fallback) {
var parsedObjectName = UTF8ToString(objectName);
var parsedCallback = UTF8ToString(callback);
var parsedFallback = UTF8ToString(fallback);
@@ -83,26 +97,30 @@ mergeInto(LibraryManager.library, {
try {
var provider = new firebase.auth.FacebookAuthProvider();
firebase.auth().signInWithRedirect(provider).then(function (unused) {
- unityInstance.Module.SendMessage(parsedObjectName, parsedCallback, "Success: signed in with Facebook!");
+ unityInstance.Module.SendMessage(parsedObjectName, parsedCallback, JSON.stringify({id: id, result: "Success: signed in with Facebook!"}));
}).catch(function (error) {
- unityInstance.Module.SendMessage(parsedObjectName, parsedFallback, JSON.stringify(error, Object.getOwnPropertyNames(error)));
+
+ var errorStringfy = JSON.stringify(error, Object.getOwnPropertyNames(error))
+ unityInstance.Module.SendMessage(parsedObjectName, parsedFallback, JSON.stringify({ id: id, result: JSON.parse(errorStringfy) }));
});
} catch (error) {
- unityInstance.Module.SendMessage(parsedObjectName, parsedFallback, JSON.stringify(error, Object.getOwnPropertyNames(error)));
+
+ var errorStringfy = JSON.stringify(error, Object.getOwnPropertyNames(error))
+ unityInstance.Module.SendMessage(parsedObjectName, parsedFallback, JSON.stringify({ id: id, result: JSON.parse(errorStringfy) }));
}
},
- OnAuthStateChanged: function (objectName, onUserSignedIn, onUserSignedOut) {
+ OnAuthStateChanged: function (objectName, id, onUserSignedIn, onUserSignedOut) {
var parsedObjectName = UTF8ToString(objectName);
var parsedOnUserSignedIn = UTF8ToString(onUserSignedIn);
var parsedOnUserSignedOut = UTF8ToString(onUserSignedOut);
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
- unityInstance.Module.SendMessage(parsedObjectName, parsedOnUserSignedIn, JSON.stringify(user));
+ unityInstance.Module.SendMessage(parsedObjectName, parsedOnUserSignedIn, JSON.stringify({id: id, result: user}));
} else {
- unityInstance.Module.SendMessage(parsedObjectName, parsedOnUserSignedOut, "User signed out");
+ unityInstance.Module.SendMessage(parsedObjectName, parsedOnUserSignedOut, JSON.stringify({id: id, result: "User signed out"}));
}
});
diff --git a/Assets/FirebaseWebGL/Scripts/FirebaseBridge/FirebaseAuth.cs b/Assets/FirebaseWebGL/Scripts/FirebaseBridge/FirebaseAuth.cs
index f22a1d3..348a13e 100644
--- a/Assets/FirebaseWebGL/Scripts/FirebaseBridge/FirebaseAuth.cs
+++ b/Assets/FirebaseWebGL/Scripts/FirebaseBridge/FirebaseAuth.cs
@@ -8,63 +8,69 @@ public static class FirebaseAuth
/// Creates and signs in a user anonymous
///
/// Name of the gameobject to call the callback/fallback of
+ /// Id of event
/// Name of the method to call when the operation was successful. Method must have signature: void Method(string output)
/// Name of the method to call when the operation was unsuccessful. Method must have signature: void Method(string output). Will return a serialized FirebaseError object
[DllImport("__Internal")]
- public static extern void SignInAnonymously(string objectName, string callback, string fallback);
-
+ public static extern void SignInAnonymously(string objectName, string id, string callback, string fallback);
+
///
/// Creates a user with email and password
///
/// User email
/// User password
/// Name of the gameobject to call the callback/fallback of
+ /// Id of event
/// Name of the method to call when the operation was successful. Method must have signature: void Method(string output)
/// Name of the method to call when the operation was unsuccessful. Method must have signature: void Method(string output). Will return a serialized FirebaseError object
[DllImport("__Internal")]
- public static extern void CreateUserWithEmailAndPassword(string email, string password, string objectName, string callback,
+ public static extern void CreateUserWithEmailAndPassword(string email, string password, string objectName, string id, string callback,
string fallback);
-
+
///
/// Signs in a user with email and password
///
/// User email
/// User password
/// Name of the gameobject to call the callback/fallback of
+ /// Id of event
/// Name of the method to call when the operation was successful. Method must have signature: void Method(string output)
/// Name of the method to call when the operation was unsuccessful. Method must have signature: void Method(string output). Will return a serialized FirebaseError object
[DllImport("__Internal")]
- public static extern void SignInWithEmailAndPassword(string email, string password, string objectName, string callback,
+ public static extern void SignInWithEmailAndPassword(string email, string password, string objectName, string id, string callback,
string fallback);
-
+
///
/// Signs in a user with Google
///
/// Name of the gameobject to call the callback/fallback of
+ /// Id of event
/// Name of the method to call when the operation was successful. Method must have signature: void Method(string output)
/// Name of the method to call when the operation was unsuccessful. Method must have signature: void Method(string output). Will return a serialized FirebaseError object
[DllImport("__Internal")]
- public static extern void SignInWithGoogle(string objectName, string callback,
+ public static extern void SignInWithGoogle(string objectName, string id, string callback,
string fallback);
-
+
///
/// Signs in a user with Facebook
///
/// Name of the gameobject to call the callback/fallback of
+ /// Id of event
/// Name of the method to call when the operation was successful. Method must have signature: void Method(string output)
/// Name of the method to call when the operation was unsuccessful. Method must have signature: void Method(string output). Will return a serialized FirebaseError object
[DllImport("__Internal")]
- public static extern void SignInWithFacebook(string objectName, string callback,
+ public static extern void SignInWithFacebook(string objectName, string id, string callback,
string fallback);
-
+
///
/// Listens for changes of the auth state (sign in/sign out)
///
/// Name of the gameobject to call the onUserSignedIn/onUserSignedOut of
+ /// Id of event
/// Name of the method to call when the user signs in. Method must have signature: void Method(string output). Will return a serialized FirebaseUser object
/// Name of the method to call when the operation was unsuccessful. Method must have signature: void Method(string output)
[DllImport("__Internal")]
- public static extern void OnAuthStateChanged(string objectName, string onUserSignedIn,
+ public static extern void OnAuthStateChanged(string objectName, string id, string onUserSignedIn,
string onUserSignedOut);
}
}
\ No newline at end of file
diff --git a/Assets/FirebaseWebGLInterface/Firestore/DocumentSnapshot.cs b/Assets/FirebaseWebGLInterface/Firestore/DocumentSnapshot.cs
new file mode 100644
index 0000000..3d0bf17
--- /dev/null
+++ b/Assets/FirebaseWebGLInterface/Firestore/DocumentSnapshot.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FirebaseWebglInterface.Firestore
+{
+ public class DocumentSnapshot
+ {
+ public string Id;
+ public bool Exists { get; }
+ public Dictionary dict;
+ public bool TryGetValue(string path, out T value)
+ {
+ value = default(T);
+ return false;
+ }
+ public T GetValue(string path)
+ {
+ return default(T);
+ }
+
+ public bool ContainsField(string path)
+ {
+ return false;
+ }
+
+ public Dictionary ToDictionary()
+ {
+ return null;
+ }
+
+ }
+}
diff --git a/Assets/FirebaseWebGLInterface/Firestore/DocumentSnapshot.cs.meta b/Assets/FirebaseWebGLInterface/Firestore/DocumentSnapshot.cs.meta
new file mode 100644
index 0000000..d6778bf
--- /dev/null
+++ b/Assets/FirebaseWebGLInterface/Firestore/DocumentSnapshot.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e4ab598efff04e94d8a3d30d2ae6e6d4
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/FirebaseWebGLInterface/Firestore/FirebaseCollection.cs b/Assets/FirebaseWebGLInterface/Firestore/FirebaseCollection.cs
new file mode 100644
index 0000000..85e4a2e
--- /dev/null
+++ b/Assets/FirebaseWebGLInterface/Firestore/FirebaseCollection.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FirebaseWebglInterface.Firestore
+{
+ public class FirebaseCollection
+ {
+ private string path;
+ public FirebaseCollection(string path)
+ {
+ this.path = path;
+ }
+ public FirebaseCollection OrderByDescending(string orderBy)
+ {
+ return this;
+ }
+
+ public FirebaseCollection Limit(int limit)
+ {
+ return this;
+ }
+ public ListenerRegistration Listen(Action action)
+ {
+ return new ListenerRegistration();
+ }
+
+ public FirebaseDocument Document(string document)
+ {
+ return new FirebaseDocument(path + "/" + document);
+ }
+ }
+}
diff --git a/Assets/FirebaseWebGLInterface/Firestore/FirebaseCollection.cs.meta b/Assets/FirebaseWebGLInterface/Firestore/FirebaseCollection.cs.meta
new file mode 100644
index 0000000..ad9216f
--- /dev/null
+++ b/Assets/FirebaseWebGLInterface/Firestore/FirebaseCollection.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a3ad295d4480bb949b9bb54a03436962
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/FirebaseWebGLInterface/Firestore/FirebaseDocument.cs b/Assets/FirebaseWebGLInterface/Firestore/FirebaseDocument.cs
new file mode 100644
index 0000000..5df2b08
--- /dev/null
+++ b/Assets/FirebaseWebGLInterface/Firestore/FirebaseDocument.cs
@@ -0,0 +1,30 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FirebaseWebglInterface.Firestore
+{
+ public class FirebaseDocument
+ {
+ private string path;
+ public FirebaseDocument(string path)
+ {
+ this.path = path;
+ }
+ public ListenerRegistration Listen(Action action)
+ {
+ //new EmptyGameObject..(name - path)
+ //GetObjectByName().GetComponent()
+ //firebaseBridge.listen(path, docId, false, "EmptyGameObject")
+ return new ListenerRegistration();
+ }
+
+ public FirebaseCollection Collection(string collection)
+ {
+ return new FirebaseCollection(path + "/" + collection);
+ }
+ }
+}
+
diff --git a/Assets/FirebaseWebGLInterface/Firestore/FirebaseDocument.cs.meta b/Assets/FirebaseWebGLInterface/Firestore/FirebaseDocument.cs.meta
new file mode 100644
index 0000000..e50d456
--- /dev/null
+++ b/Assets/FirebaseWebGLInterface/Firestore/FirebaseDocument.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 94f560367a7125f40ae22a3a6b60e5dd
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/FirebaseWebGLInterface/Firestore/FirebaseFirestore.cs b/Assets/FirebaseWebGLInterface/Firestore/FirebaseFirestore.cs
new file mode 100644
index 0000000..1541da5
--- /dev/null
+++ b/Assets/FirebaseWebGLInterface/Firestore/FirebaseFirestore.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FirebaseWebglInterface.Firestore
+{
+ public class FirebaseFirestore
+ {
+ public static FirebaseFirestore DefaultInstance = new FirebaseFirestore();
+
+ public FirebaseDocument Document(string path)
+ {
+ return new FirebaseDocument(path);
+ }
+
+ public FirebaseCollection Collection(string path)
+ {
+ return new FirebaseCollection(path);
+ }
+ }
+}
diff --git a/Assets/FirebaseWebGLInterface/Firestore/FirebaseFirestore.cs.meta b/Assets/FirebaseWebGLInterface/Firestore/FirebaseFirestore.cs.meta
new file mode 100644
index 0000000..123cf4f
--- /dev/null
+++ b/Assets/FirebaseWebGLInterface/Firestore/FirebaseFirestore.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 18f32c5aae3bb664298ed790abf45db0
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/FirebaseWebGLInterface/Firestore/FirebaseUpdateObject.cs b/Assets/FirebaseWebGLInterface/Firestore/FirebaseUpdateObject.cs
new file mode 100644
index 0000000..1cd0ec8
--- /dev/null
+++ b/Assets/FirebaseWebGLInterface/Firestore/FirebaseUpdateObject.cs
@@ -0,0 +1,13 @@
+using System;
+using UnityEngine;
+
+namespace FirebaseWebglInterface.Firestore
+{
+ public class FirebaseUpdateObject: MonoBehaviour
+ {
+ public void OnCallback(string message)
+ {
+
+ }
+ }
+}
diff --git a/Assets/FirebaseWebGLInterface/Firestore/FirebaseUpdateObject.cs.meta b/Assets/FirebaseWebGLInterface/Firestore/FirebaseUpdateObject.cs.meta
new file mode 100644
index 0000000..2cb60d6
--- /dev/null
+++ b/Assets/FirebaseWebGLInterface/Firestore/FirebaseUpdateObject.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 42203ec55e41d417db1a84ee393a1958
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/FirebaseWebGLInterface/Firestore/ListenerRegistration.cs b/Assets/FirebaseWebGLInterface/Firestore/ListenerRegistration.cs
new file mode 100644
index 0000000..3f0d7c6
--- /dev/null
+++ b/Assets/FirebaseWebGLInterface/Firestore/ListenerRegistration.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FirebaseWebglInterface.Firestore
+{
+ public class ListenerRegistration
+ {
+ public void Stop()
+ {
+
+ }
+ }
+}
diff --git a/Assets/FirebaseWebGLInterface/Firestore/ListenerRegistration.cs.meta b/Assets/FirebaseWebGLInterface/Firestore/ListenerRegistration.cs.meta
new file mode 100644
index 0000000..ecf7246
--- /dev/null
+++ b/Assets/FirebaseWebGLInterface/Firestore/ListenerRegistration.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 74c1e2157650fe34a86cddf2f7313d9e
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/FirebaseWebGLInterface/Firestore/QuerySnapshot.cs b/Assets/FirebaseWebGLInterface/Firestore/QuerySnapshot.cs
new file mode 100644
index 0000000..afb857b
--- /dev/null
+++ b/Assets/FirebaseWebGLInterface/Firestore/QuerySnapshot.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FirebaseWebglInterface.Firestore
+{
+ public class QuerySnapshot
+ {
+ public int Count { get; }
+ public DocumentSnapshot[] Documents { get; }
+ }
+}
diff --git a/Assets/FirebaseWebGLInterface/Firestore/QuerySnapshot.cs.meta b/Assets/FirebaseWebGLInterface/Firestore/QuerySnapshot.cs.meta
new file mode 100644
index 0000000..be51703
--- /dev/null
+++ b/Assets/FirebaseWebGLInterface/Firestore/QuerySnapshot.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: de24f1529f17def4598c81a412f0d230
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: