繁体   English   中英

Android Studio如何在一个类中使用多个快照

[英]Android studio how to use multiple snapshots in a class

我正在尝试从数据库的两个不同子段中进行快照。

private String name;
snap1.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        name = value
    }

    snap2.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) { 
            if(value.equals(name)) {
                //Do this
            }
        }
    }
}

但是在完成第一个快照后, namenull 我看到里面的onDataChange名称不为null。 如何将值存储为名称并将其用于第二个数据快照?

Firebase调用是Asynch,您必须等待第一个调用结束才能调用第二个。 我不知道执行此操作的最佳方法,但是我制作了一个函数,并将其中一个调用放在其中,然后在第一个调用中调用了该函数。 您可以执行以下操作:

private String name;
snap1.addListenerForSingleValueEvent(new ValueEventListener() {
  @Override
  public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
   name = value
   secondCall();
  }
}

//The function with second call
secondCall(){
  snap2.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) { 
      if(value.equals(name)){
        //Do this
      }
    }
  }      
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM