Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 13 additions & 4 deletions src/Firebase.Database/Database.uno
Original file line number Diff line number Diff line change
Expand Up @@ -659,7 +659,7 @@ namespace Firebase.Database
extern(!mobile)
internal class ReadByQueryEqualToValue : Promise<string>
{
public ReadByQueryEqualToValue(string path, string key, string val)
public ReadByQueryEqualToValue(string path, string key, object val)
{
Reject(new Exception("Not implemented on desktop"));
}
Expand Down Expand Up @@ -703,7 +703,7 @@ namespace Firebase.Database
internal class ReadByQueryEqualToValue : Promise<string>
{
[Foreign(Language.ObjC)]
public ReadByQueryEqualToValue(string path, string key, string val)
public ReadByQueryEqualToValue(string path, string key, ObjC.Object val)
@{
FIRDatabaseReference *ref = @{DatabaseService._handle:Get()};

Expand Down Expand Up @@ -788,7 +788,7 @@ namespace Firebase.Database
internal class ReadByQueryEqualToValue : Promise<string>
{
[Foreign(Language.Java)]
public ReadByQueryEqualToValue(string path, string key, string val)
public ReadByQueryEqualToValue(string path, string key, Java.Object val)
@{
ValueEventListener dataListener = new ValueEventListener() {
@Override
Expand All @@ -815,7 +815,16 @@ namespace Firebase.Database
}
};
DatabaseReference ref = (DatabaseReference)@{DatabaseService._handle:Get()};
ref.child(path).orderByChild(key).equalTo(val).addListenerForSingleValueEvent(dataListener);
if(val instanceof String){
String obj = (String) val;
ref.child(path).orderByChild(key).equalTo(obj).addListenerForSingleValueEvent(dataListener);
} else if (val instanceof Double){
Double obj = (Double) val;
ref.child(path).orderByChild(key).equalTo(obj).addListenerForSingleValueEvent(dataListener);
} else if( val instanceof Boolean ){
Boolean obj = (Boolean) val;
ref.child(path).orderByChild(key).equalTo(obj).addListenerForSingleValueEvent(dataListener);
}
@}
void Reject(string reason) { Reject(new Exception(reason)); }
}
Expand Down
22 changes: 20 additions & 2 deletions src/Firebase.Database/JS.uno
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,26 @@ namespace Firebase.Database.JS
{
var path = args[0].ToString();
var key = args[1].ToString();
var val = args[2].ToString();
return new ReadByQueryEqualToValue(path,key,val);
var val = args[2];

if defined(iOS)
{
return new ReadByQueryEqualToValue(
path, key,
JSON.ObjCObject.FromJSON(JSON.ScriptingValue.ToJSON(val))
);
}
else if defined(Android)
{
return new ReadByQueryEqualToValue(
path, key,
JSON.JavaObject.FromJSON(JSON.ScriptingValue.ToJSON(val))
);
}
else
{
return new ReadByQueryEqualToValue(path,key,val);
}
}

static void DoSave(string path, object arg)
Expand Down