我正在使用firebase实时数据库和unityc #;我想按产品名称或ID搜索,但在文档或其他地方没有找到任何解决方案。
我尝试了:orderbychild("id").equalTo(MyId);
,但统一得到粉碎,直到我删除orderbychild()
功能。
我也试着用产品的所有数据获取快照,然后用C#过滤我的数据,但是没有人这样做。我想要的只是查询我想和他的孩子一起工作的产品。
下面是我在Firebase中数据结构:
[{
"id": 1001,
"price": "265$",
"product_name": "dell",
"type": "monitor"
}, {
"id": 1002,
"price": "320$",
"product_name": "ibm",
"type": "laptop"
}, {
"id": 1003,
"price": "542$",
"product_name": "hp",
"type": "workstation"
}]
下面是我的代码:
public void getProduct()
{
FirebaseDatabase.DefaultInstance.GetReference("").OrderByChild("id").EqualTo("1001").ValueChanged += S_Value_Changed;
}
private void S_Value_Changed(object sender, ValueChangedEventArgs e)
{
var players = e.Snapshot;
Debug.Log(players.ChildrenCount);
foreach (var player in players.Children)
{
if (player.Child("code").GetValue(true).ToString() == "1001")
Debug.Log(player.Child("product_name").GetValue(true).ToString());
}
}
注意:我不想让id作为产品的父,因为我想搜索也使用产品名称。
1条答案
按热度按时间oo7oh9g91#
Firebase中的比较操作是类型敏感的。您的代码检查
EqualTo("1001")
,但JSON中的值1001
是一个数字。这两个值不相同,因此查询不会返回。若要比较数值: