gpt4 book ai didi

java - 如何使用 java 代码从 Firebase 获取值并保存在属性中

转载 作者:行者123 更新时间:2023-12-02 02:23:34 32 4
gpt4 key购买 nike

我正在尝试创建一个“读取”方法,该方法将使用 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];
}

}

最佳答案

它是一个异步方法,尝试这样的方法

    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;
passingValue(value[0]);
}

@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("The read failed: " + databaseError.getCode());
}
});

return value[0];
}

private void passingValue(String temp){
//do something with your string

}

在OndataChange范围之外,该值不会被保留

关于java - 如何使用 java 代码从 Firebase 获取值并保存在属性中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48113701/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com