【发布时间】:2018-06-15 06:31:23
【问题描述】:
我正在尝试创建一个“读取”方法,该方法将使用 android studio (Java) 从 Firebase (Google 服务器) 获取值 我写了下面的代码,但问题是 value[0] 总是返回 "" 作为一个值,而不是来自服务器的值。 当我在方法“onDataChange”内部时,值[0]等于来自服务器的值,但在外部,它返回到原始值。 我的代码有什么问题? 请帮忙
/**
* Return value
*
* @param parent
* @param child
* @param key
* @return
*/
public static String read(String parent, String child, String key) {
final String[] value = {""};
// Get a reference to our posts
final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference ref = database.getReference(parent).child(child);
// Attach a listener to read the data at our posts reference
ref.child(key).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String str = dataSnapshot.getValue(String.class);
System.out.println(str);
value[0] = str;
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("The read failed: " + databaseError.getCode());
}
});
return value[0];
}
}
【问题讨论】:
标签: java firebase firebase-realtime-database google-cloud-functions