【问题标题】:FireBase Callback method never gets calledFireBase 回调方法永远不会被调用
【发布时间】:2017-09-27 13:14:00
【问题描述】:

回调方法永远不会被调用。我在这里做错了吗?

String FirebaseRefer = Constants.Client+"/"+Constants.firebaseProjects+"/"+Constants.ProjectName+"/xyz";
            final DatabaseReference ref = FirebaseDatabase.getInstance().getReference(FirebaseRefer);

            ref.keepSynced(true);

            ref.child("mockChild").push().setValue("dummyValue", new com.google.firebase.database.ValueEventListener() {

                @Override
                public void onDataChange(com.google.firebase.database.DataSnapshot snapshot) {

//This never gets called.

}

更多信息:- 以下代码曾经工作.. 只有在我添加 setChild().push() 等之后它才停止工作。

ref.addListenerForSingleValueEvent(new com.google.firebase.database.ValueEventListener() {

            @Override
            public void onDataChange(com.google.firebase.database.DataSnapshot snapshot) {

【问题讨论】:

  • 值变化事件监听器在哪里。
  • @RajendranNadar 作为 onDataChange 的一个参数。
  • 尝试从第 2 行删除最后一个键
  • final关键字与此问题无关。
  • @AlexMamo 你是对的。我尝试删除决赛。没什么区别。

标签: android firebase firebase-realtime-database


【解决方案1】:

事实证明,我传递给该方法的侦听器对象(匿名)属于错误的类。 (令人惊讶的是它没有显示错误)

正确的代码如下所示:-

  ref.child("mockChild").push().setValue("dummyValue", new DatabaseReference.CompletionListener() {

            @Override
            public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) {

                ref.addListenerForSingleValueEvent(new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {

【讨论】:

  • 这就是我说的你需要一个值事件监听器。
猜你喜欢
  • 1970-01-01
  • 2016-12-07
  • 2014-06-22
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-28
  • 2013-11-23
相关资源
最近更新 更多