我正在使用Firebase数据库处理应用。在我的Firebase数据库中,我有一个类似xxxxxx_yyyyyy
的节点,其中xxxxxx
表示第一个用户ID,yyyyyy
表示第二个用户ID。现在我想从我的数据库中只检索包含xxxxxx_
的节点。我不知道该怎么做。因为我所知道的只是Firebase只提供equalsTo()方法。
答案 0 :(得分:0)
没有像contains()这样的查询。我建议更改节点结构(在xxxxx下找到yyyyy)。
答案 1 :(得分:0)
Fire base中没有包含查询的查询。 如果您不想更改节点的结构,可以将数据存储在列表中,然后只需使用list.contains()即可获得所需的结果。!
HtBVbQP0qMSrCStroYsIiMSuhMC3 //node userID
Name:XXXXXXX
您可以使用orderbychild(XXXXXX);
答案 2 :(得分:0)
没有contain()
方法,但是,您可以通过两种方式解决此问题:
split()
类中的String
方法。Regex Pattern
以下是代码:
String firebaseField = "xxxxxx_yyyyyy";
String[] data = firebaseField.split("_");
System.out.print("Using split method: ");
for(String part : data) {
if (part.equals("xxxxxx")) {
System.out.print(part + " ");
//Add your logic
}
}
或者
System.out.print("\nUsing Regex Pattern: ");
Pattern datePattern = Pattern.compile("_");
data = datePattern.split(firebaseField);
for(String part : data) {
if (part.equals("xxxxxx")) {
System.out.print(part + " ");
//Add your logic
}
}
希望它有所帮助。