gpt4 book ai didi

java - 从 Firebase 实时数据库检索特定数据的最快方法?

转载 作者:行者123 更新时间:2023-11-29 04:06:05 26 4
gpt4 key购买 nike

我想从我的数据库中检索特定数据,但我不确定这样做的最快方法。这就是我在数据库中保存数据的方式:

enter image description here

我想获取给定名称 (users->Aleem->profilePic) 的“profilePic”值中的字符串。

这就是我试图获取数据的方式:

String profilePicUri="";
String searchFor="any Name";
String url = "https://as*******.firebaseio.com/users.json";

StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>(){
@Override
public void onResponse(String s) {
try {
JSONObject obj = new JSONObject(s);

if(obj.getJSONObject(searchFor).getString("users").equals(searchFor)){
profilePicUri=obj.getJSONObject(searchFor).getString("profilePic");


}

} catch (JSONException e) {
e.printStackTrace();
}
}


}
},new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError volleyError) {
System.out.println("" + volleyError);

}
});

RequestQueue rQueue = Volley.newRequestQueue(Login.this);
rQueue.add(request);

但是代码不起作用。有人能告诉我应该用什么方式来检索这些特定数据以及这样做的好方法是什么。非常感谢

最佳答案

您不需要执行get 请求,firebase 已经提供了自己的api。要检索数据,您需要执行以下操作:

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("users").child("Aleem");
databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String profilePic = dataSnapshot.child("profilePic").getValue(String.class);
String password = dataSnapshot.child("password").getValue(String.class);
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw databaseError.toException();
}
});

首先添加对节点Aleem的引用,然后附加一个监听器,您将能够检索Aleem下的数据。

点击此处获取更多信息:

https://firebase.google.com/docs/database/android/read-and-write

关于java - 从 Firebase 实时数据库检索特定数据的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58573120/

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