如何使用contains()方法访问Firebase数据库节点?

时间:2017-05-16 04:44:43

标签: android firebase firebase-realtime-database

我正在使用Firebase数据库处理应用。在我的Firebase数据库中,我有一个类似xxxxxx_yyyyyy的节点,其中xxxxxx表示第一个用户ID,yyyyyy表示第二个用户ID。现在我想从我的数据库中只检索包含xxxxxx_的节点。我不知道该怎么做。因为我所知道的只是Firebase只提供equalsTo()方法。

3 个答案:

答案 0 :(得分:0)

没有像contains()这样的查询。我建议更改节点结构(在xxxxx下找到yyyyy)。

答案 1 :(得分:0)

Fire base中没有包含查询的查询。 如果您不想更改节点的结构,可以将数据存储在列表中,然后只需使用list.contains()即可获得所需的结果。!

  HtBVbQP0qMSrCStroYsIiMSuhMC3 //node userID 
     Name:XXXXXXX         

您可以使用orderbychild(XXXXXX);

获取此数据

答案 2 :(得分:0)

没有contain()方法,但是,您可以通过两种方式解决此问题:

  1. 使用split()类中的String方法。
  2. 使用Regex Pattern
  3. 以下是代码:

        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
            }
        }
    

    希望它有所帮助。