【问题标题】:Android Firebase Checking if Data is Equal To StringAndroid Firebase 检查数据是否等于字符串
【发布时间】:2018-09-25 09:23:56
【问题描述】:

我正在使用 firebase 将信息存储到数据库中以存储收藏夹。我基本上有一个列表视图,当您单击一个项目时,它会将您带到一个新活动。我希望能够检查活动的项目是否等于我数据库中的 itemName 它将更改按钮文本。我的树是这样的

-用户ID:

--“收藏夹”:

---“项目名称”:{名称:值}

如何检查我点击的活动的项目名称是否与我数据库中的项目名称相同?我在下面有这段代码,但它不起作用。

private void checkifFavExist() {
    FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
    DatabaseReference myRef = firebaseDatabase.getReference(firebaseAuth.getCurrentUser().getUid());
   if ((myRef.child("Favorites").child(itemName.toLowerCase())).equals(itemName.toLowerCase())) {
        button_fav.setText("Remove From Favorites");
        removefavs();
    } else {
        button_fav.setText("Add to Favorites");
        addfavs();
    }
}

【问题讨论】:

    标签: java android firebase firebase-realtime-database


    【解决方案1】:

    改变这个:

     if ((myRef.child("Favorites").child(itemName.toLowerCase())).equals(itemName.toLowerCase())) {
    

    到这里:

    FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
    DatabaseReference myRef = firebaseDatabase.getReference(firebaseAuth.getCurrentUser().getUid());
    Query queries=myRef.child("ItemName").orderByChild("name").equals(itemName);
    

    您需要使用orderByChild("name").equals(itemName) 来检查数据库中的孩子是否具有该值。此外,child(child_here) 需要与数据库中的名称相同。

    更多信息here

    【讨论】:

    • 谢谢,我必须添加一个值事件侦听器,但它有效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 2014-07-29
    • 1970-01-01
    • 2021-09-11
    • 2016-12-21
    • 2019-10-10
    • 2015-02-04
    相关资源
    最近更新 更多