Java ValueEventListener无限循环

Java ValueEventListener无限循环,java,firebase,firebase-realtime-database,Java,Firebase,Firebase Realtime Database,我的Firebase代码在将联系人添加到用户配置文件时遇到问题。这段代码过去工作得很好,现在它进入了一个无限循环,并重复创建联系人,直到我强制终止应用程序。我不知道循环在哪里,也不知道发生了什么变化 代码: 另外,也许顺便说一句,它从不触发“用户未找到”事件,即使我输入了数据库中没有的详细信息 有什么想法吗?我肯定它正盯着我的脸,但我没看到它 @Peter Haddad数据库(按要求): MyAppDatabase -Profiles -BCsuC4XAZqVhWj -N

我的Firebase代码在将联系人添加到用户配置文件时遇到问题。这段代码过去工作得很好,现在它进入了一个无限循环,并重复创建联系人,直到我强制终止应用程序。我不知道循环在哪里,也不知道发生了什么变化

代码:

另外,也许顺便说一句,它从不触发“用户未找到”事件,即使我输入了数据库中没有的详细信息

有什么想法吗?我肯定它正盯着我的脸,但我没看到它

@Peter Haddad数据库(按要求):

MyAppDatabase
  -Profiles
    -BCsuC4XAZqVhWj
      -Name: "Simon"
      -Phone:  123456
      -Contacts
        -pnYn1NhzzNQAm
          -Name: "Bill"
          -PingStatus: false

     -pnYn1NhzzNQAm
       -Name:  "Bill"
       -Phone:   987654
       -Contacts
          -BCsuC4XAZqVhWj
            -Name: "Simon"
            -PingStatus: false

在这两种情况下,请使用
addListenerForSingleValueEvent
而不是
addValueEventListener

显示您的数据库请根据要求添加数据库,谢谢!如果我从一个空白联系人列表开始,Simon试图添加Bill,它会一次又一次地添加Bill,直到我强制关闭应用程序。我在这里添加了信息,因此很清楚最终输出应该是什么样子。您可以尝试更改以下内容:ref.orderByChild(“电话”).equalTo(searchPhone).addValueEventListener(新的ValueEventListener()){要添加ListenerForSingleValueEvent吗?因为看起来您正在有效地更改eventlistener中的数据,它正在调用自身,从而创建无限循环。这很有效,Andre!想将您的评论作为答案发布,以便我可以接受吗?
MyAppDatabase
  -Profiles
    -BCsuC4XAZqVhWj
      -Name: "Simon"
      -Phone:  123456
      -Contacts
        -pnYn1NhzzNQAm
          -Name: "Bill"
          -PingStatus: false

     -pnYn1NhzzNQAm
       -Name:  "Bill"
       -Phone:   987654
       -Contacts
          -BCsuC4XAZqVhWj
            -Name: "Simon"
            -PingStatus: false