Android 如何使用contains()方法访问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的查询。! 若您不想更改节点

我正在使用Firebase数据库开发一个应用程序。在我的Firebase数据库中,我有一个类似于
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
            }
        }