Android 如何使用contains()方法访问Firebase数据库节点?
我正在使用Firebase数据库开发一个应用程序。在我的Firebase数据库中,我有一个类似于Android 如何使用contains()方法访问Firebase数据库节点?,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我正在使用Firebase数据库开发一个应用程序。在我的Firebase数据库中,我有一个类似于xxxxxx\uyyyyyy的节点,其中xxxxxx表示第一个用户ID,yyyyy表示第二个用户ID。现在我只想从我的数据库中检索包含xxxxxx\uyyyy的节点。我不知道怎么做。因为我只知道Firebase只提供equalsTo()方法 没有像contain()这样的查询。我建议更改节点结构(将YYYY定位在xxxxx下)。在Fire base中没有类似Contains的查询。! 若您不想更改节点
xxxxxx\uyyyyyy
的节点,其中xxxxxx
表示第一个用户ID,yyyyy
表示第二个用户ID。现在我只想从我的数据库中检索包含xxxxxx\uyyyy
的节点。我不知道怎么做。因为我只知道Firebase只提供equalsTo()方法 没有像contain()这样的查询。我建议更改节点结构(将YYYY定位在xxxxx下)。在Fire base中没有类似Contains的查询。!
若您不想更改节点的结构,可以将数据存储在列表中,然后只需使用list.contains()即可获得所需的结果
HtBVbQP0qMSrCStroYsIiMSuhMC3 //node userID
Name:XXXXXXX
您可以使用orderbychild(XXXXXX)获取此数据
没有contain()
方法,但是,可以通过两种方式解决此问题:
String
类中的split()
方法Regex模式
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
}
}