Android Firebase检查数据是否等于字符串 [英] Android Firebase Checking if Data is Equal To String

查看:63
本文介绍了Android Firebase检查数据是否等于字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

-UserID:

-收藏夹":

---"ItemName":{name:value}

如何检查我单击的活动的项目名称是否等于数据库中的项目名称?我在下面有此代码,但无法正常工作.

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();
    }
}

解决方案

更改此内容:

 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)必须与数据库中的名称相同.

更多信息此处

I am using firebase to store information into the database to store favorites. I basically have a listview and when you click on an item it will take you to a new activity. I want to be able to check if the item of the activity is equal to the itemName in my databse it will change the button text. My tree looks like this

-UserID:

--"Favorites":

---"ItemName" : {name:value}

How can I check if the item name of the activity I clicked on is equal to the item name in my database? I have this code below but it is not working.

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();
    }
}

解决方案

Change this:

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

To this:

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

You need to use orderByChild("name").equals(itemName) to check if the child in the database has that value. Also the child(child_here) needs to be the same name as in the database.

More info here

这篇关于Android Firebase检查数据是否等于字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆