Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在firebase数据库中获取一个值,并将其保存在一个变量中:android_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

在firebase数据库中获取一个值,并将其保存在一个变量中:android

在firebase数据库中获取一个值,并将其保存在一个变量中:android,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我想申请预订。我需要在另一个节点中计算一些数据,然后将其存储在一个变量中,并将其与另一个节点上输入的新数据一起插入。这是我想要的数据结构: { "laundry_category" : { "laundry_category1" : { "name" : "clean laundry", "description" : "xxxxxxx" } }, "laundry" : { "laundry_category1" : { "laundry_id

我想申请预订。我需要在另一个节点中计算一些数据,然后将其存储在一个变量中,并将其与另一个节点上输入的新数据一起插入。这是我想要的数据结构:

{
"laundry_category" : {
  "laundry_category1" : {
      "name" : "clean laundry",
      "description" : "xxxxxxx"
  }
},

"laundry" : {
  "laundry_category1" : {
      "laundry_id_1" : {
        "name" : "ABC",
        "colour" : "red",
        "description" : "xxxxx"
    }
 }
}
例如,我想从洗衣房类别节点获取数据描述,并将其插入洗衣房节点。可能吗? 我已经在我的代码中尝试过了,但它不起作用。这是我的adddroyment.java代码:

AddDroyment.java

DatabaseReference databaseLaundry;
DatabaseReference databaseCategory;

List<Laundry> laundryList;

@Override
protected void onStart() {
    super.onStart();

    databaseLaundry.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            laundryList.clear();

            for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                Laundry laundry = postSnapshot.getValue(Laundry.class);
                laundryList.add(laundry);
            }



            LaundryList adapter = new LaundryList(TambahLaundryActivity.this, laundryList);
            listViewLaundry.setAdapter(adapter);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_laundry);


    btAddLaundry = (Button)findViewById(R.id.bn_add_laundry);
    listViewLaundry = (ListView)findViewById(R.id.listViewLaundryLis);

    laundryList = new ArrayList<>();


    Intent intentAddLaundry = getIntent();

    String id_category = intentAddLaundry.getStringExtra(MainActivity.category_id);
    String description_category = intentTambahLaundry.getStringExtra(MainActivity.category_description);

    databaseLaundry = FirebaseDatabase.getInstance().getReference("laundry").child(id_category);

    databaseLaundry = FirebaseDatabase.getInstance().getReference("laundry").child(description_category);

    btAddLaundry.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            addLaundry();
        }
    });


}

public void addLaundry() {
    databaseLaundry.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                category a = postSnapshot.getValue(category.class);
                String var_category_description = ((Map)a).get("category_description").toString();

                String id = databaseLaundry.push().getKey(); 
                Laundry laundry = new Laundry(id, name_laundry, var_category_description); 
                databaseLaundry.child(id).setValue(laundry); 
            }

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
  }
}
category.java

public class Category {
private String category_id;
private String category_name;
private String category_description;

public Category() {

}

public Category(String category_id, String category_name, category_description) {
    this.category_id = category_id;
    this.category_name = category_name;
    this.category_description = category_description;

}

public String getcategory_id() {
    return category_id;
}

public String getcategory_name() {
    return category_name;
}

public String getcategory_description() {
    return category_description;
}

非常感谢您的帮助:)

如果您想在多个位置保存相同的数据,在上载数据时,您需要在每个
数据库引用
对象上执行相同的操作。因此,为了实现这一点,请使用以下两个参考:

DatabaseReference idCateoryRef = FirebaseDatabase.getInstance().getReference("laundry").child(id_category);

代码中的错误是,您两次初始化相同的
数据库引用。如上所述,每个操作都需要有不同的
数据库引用


希望有帮助。

如果您想在多个位置保存相同的数据,在上载数据时,您需要在每个
数据库引用
对象上执行相同的操作。因此,为了实现这一点,请使用以下两个参考:

DatabaseReference idCateoryRef = FirebaseDatabase.getInstance().getReference("laundry").child(id_category);

代码中的错误是,您两次初始化相同的
数据库引用。如上所述,每个操作都需要有不同的
数据库引用


希望有帮助。

您初始化了
数据库两次,这似乎是个错误。但请注意,通常堆栈溢出是调试器的糟糕替代品。如果将问题隔离到没有外部依赖关系的单个代码片段中,则最容易提供帮助,例如,使用硬编码字符串而不是从用户输入中读取的
description\u category
。这样一个孤立的代码片段被称为,是我们帮助您的最简单的方法。您初始化
数据库两次,这似乎是一个错误。但请注意,通常堆栈溢出是调试器的糟糕替代品。如果将问题隔离到没有外部依赖关系的单个代码片段中,则最容易提供帮助,例如,使用硬编码字符串而不是从用户输入中读取的
description\u category
。这样一个孤立的代码片段称为,是我们帮助您的最简单的方法。
DatabaseReference descriptionCategoryRef = FirebaseDatabase.getInstance().getReference("laundry").child(description_category);