Android 如何在没有设置值的情况下获取Firebase数据库整个节点?
我正在尝试从Firebase数据库中获取整个节点,而不使用Android 如何在没有设置值的情况下获取Firebase数据库整个节点?,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我正在尝试从Firebase数据库中获取整个节点,而不使用setValue。我在谷歌上得到了各种各样的代码,但都不起作用。这是我的JSON: myAppInfo.json { "AppInfo" : { "AppName" : "MyDemo1", "VersionName" : "1.0", "VersionCode" : "1.1" } } 火基测试方法 public void App
setValue
。我在谷歌上得到了各种各样的代码,但都不起作用。这是我的JSON:
myAppInfo.json
{
"AppInfo" : {
"AppName" : "MyDemo1",
"VersionName" : "1.0",
"VersionCode" : "1.1"
}
}
火基测试方法
public void AppversionCheck() {
Log.v(Constants.TAG, "AppversionCheck ");
//String UserId = ref.child("AppInfo").push().getKey();
ref = new Firebase(Config.FIREBASE_URL);
//AppInfo appInfo = new AppInfo();
//appInfo.setAppName("AppInfo");
//ref.child("AppInfo").child("AppName").setValue("App1");
ref.child("AppInfo")./*child(UserId).*/child("AppName").setValue("App1");
//mDatabase = FirebaseDatabase.getInstance().getReference("AppInfo");
ref.child("AppInfo")/*.child(UserId)*/.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Log.v(Constants.TAG, "FireBaseCalled 11");
//Getting the data from snapshot
//AppInfo appInfo = postSnapshot.getValue(AppInfo.class);
Log.v(Constants.TAG, "postSnapshot " + dataSnapshot.getChildren());
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
Log.v(Constants.TAG, "FireBaseCalled 22");
//Getting the data from snapshot
//AppInfo appInfo = postSnapshot.getValue(AppInfo.class);
Log.v(Constants.TAG, "postSnapshot " + dataSnapshot.getChildren());
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
Log.v(Constants.TAG, "FireBaseCalled1 33");
//Getting the data from snapshot
//AppInfo appInfo = postSnapshot.getValue(AppInfo.class);
Log.v(Constants.TAG, "postSnapshot " + dataSnapshot.getChildren());
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
Log.v(Constants.TAG, "FireBaseCalled 44");
//Getting the data from snapshot
//AppInfo appInfo = postSnapshot.getValue(AppInfo.class);
Log.v(Constants.TAG, "postSnapshot " + dataSnapshot.getChildren());
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
}
给你。!希望这对你有帮助
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
public class MainActivity extends AppCompatActivity
{
private FirebaseDatabase mdatabase;
private DatabaseReference mdatabaseRef;
public static List<AppInfo > appInfo_list =new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.Main_Activity);
initFirebase();
AddEventFireBaseListner();
}
public void initFirebase() {
mdatabase = FirebaseDatabase.getInstance();
mdatabaseReference = mdatabase.getReference();
// storageRef = FirebaseStorage.getInstance().getReference();
}
public void AddEventFireBaseListner() {
mdatabaseRef.child("AppInfo").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.e(TAG, "AppInfoNode:");
if (appInfo_list.size() > 0)
appInfo_list.clear();
for(DataSnapshot postSnapshot:dataSnapshot.getChildren())
{
AppInfo appInfo= postsnapshot.getValue(AppInfo.class);
if(postSnapshot.getKey().equals("AppName"))
{
Log.e(TAG, "NodeSnapShot:");
String AppNameStr=postSnapshot.getValue().toString();
Log.e(TAG, "AppName:"+AppNameStr);
}
if(postSnapshot.getKey().equals("VersionName"))
{
Log.e(TAG, "VersionName:");
String VersionName=postSnapshot.getValue().toString();
Log.e(TAG, "VersionName:"+VersionName);
}
if(postSnapshot.getKey().equals("VersionCode"))
{
Log.e(TAG, "VersionCode:");
String VersionCode=postSnapshot.getValue().toString();
Log.e(TAG, "VersionCode:"+VersionCode);
}//end of if
appInfo_list.add(appInfo);
// AppInfo modelClass=new AppInfo ();
// modelClass.setAppName(AppNameStr);
// modelClass.setAppVersionName(VersionName);
// modelClass.setAppVersionCode(VersionCode);
}
}
import com.google.firebase.auth.FirebaseAuth;
导入com.google.firebase.database.DataSnapshot;
导入com.google.firebase.database.DatabaseError;
导入com.google.firebase.database.DatabaseReference;
导入com.google.firebase.database.FirebaseDatabase;
导入com.google.firebase.database.ValueEventListener;
公共类MainActivity扩展了AppCompatActivity
{
私有Firebase数据库mdatabase;
私有数据库引用mdatabaseRef;
public static List appInfo_List=new ArrayList();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.Main_活动);
initFirebase();
AddEventFireBaseListner();
}
public void initFirebase(){
mdatabase=FirebaseDatabase.getInstance();
mdatabaseReference=mdatabase.getReference();
//storageRef=FirebaseStorage.getInstance().getReference();
}
public void AddEventFireBaseListner(){
mdatabaseRef.child(“AppInfo”).addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
Log.e(标签“AppInfoNode:”);
如果(appInfo_list.size()>0)
appInfo_list.clear();
对于(DataSnapshot postSnapshot:DataSnapshot.getChildren())
{
AppInfo AppInfo=postsnapshot.getValue(AppInfo.class);
if(postSnapshot.getKey().equals(“AppName”))
{
Log.e(标签“NodeSnapShot:”);
字符串AppNameStr=postSnapshot.getValue().toString();
Log.e(标记“AppName:+AppNameStr”);
}
if(postSnapshot.getKey().equals(“VersionName”))
{
Log.e(标记“VersionName:”);
字符串VersionName=postSnapshot.getValue().toString();
Log.e(标记“VersionName:+VersionName”);
}
if(postSnapshot.getKey().equals(“VersionCode”))
{
Log.e(标签,“VersionCode:”);
字符串VersionCode=postSnapshot.getValue().toString();
Log.e(标记“VersionCode:+VersionCode”);
}//if结束
appInfo_list.add(appInfo);
//AppInfo modelClass=newappinfo();
//setAppName(AppNameStr);
//setAppVersionName(VersionName);
//modelClass.setAppVersionCode(VersionCode);
}
}
在每个节点循环的末尾,您可以将其存储在您的ModelClass对象中。!更改后,仅更改键返回,我希望整个节点列表不被调用,怎么办,我使用的是import com.google.firebase.database.ValueEventListener;station fot,它现在为您提供了我的所有代码和它的工作状态。只需遵循此操作,您就会得到结果。!让我们。