[英]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
}
}
}
}
但是在完成第一个快照后, name
为null
。 我看到里面的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.