【发布时间】:2017-12-20 06:58:06
【问题描述】:
我需要有关如何将数据从一个节点移动到另一个节点的帮助。所以,这是我的数据库的截图。 https://imgur.com/a/26kSL
我需要将数据从“mastersheet”节点传输到“events”节点。在这种情况下,您可以忽略有关添加事件名称“马拉松”的部分。 您可以放心地假设在“mastersheet”节点下,“Name”将始终位于“2”,“email”始终位于“3”,依此类推。
我知道如何转移单个孩子,但我不确定如何转移多个孩子,尤其是通过为每个参与者生成推送 ID。请帮帮我。
这是我的代码:
DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("masterSheet"); //Open DBRef to raw data
ref.addValueEventListener((new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot data: dataSnapshot.getChildren()){
for(int i = 2; i<=5; i++)
{
String val = data.child(String.valueOf(i)).getValue().toString();
String email = data.child("3").getValue().toString();
/*
Check if the email field is correct as that is very important
*/
if(email.isEmpty() || !email.contains("@"))
{
}
else
{
switch(i){
/*
Based on the node, assign seperate column names and write in the appropriate values
*/
case 2:
DatabaseReference Participants_name_ref = FirebaseDatabase.getInstance().getReference().child("Events").child(event_key).child("participants").child("Name");
Participants_name_ref.setValue(val);
break;
case 3:
DatabaseReference Participants_email_ref = FirebaseDatabase.getInstance().getReference().child("Events").child(event_key).child("participants").child("Email");
Participants_email_ref.setValue(val);
break;
case 4:
DatabaseReference Participants_CountryCode_ref = FirebaseDatabase.getInstance().getReference().child("Events").child(event_key).child("participants").child("Country Code");
Participants_CountryCode_ref.setValue(val);
break;
case 5:
DatabaseReference Participants_Phone_no_ref = FirebaseDatabase.getInstance().getReference().child("Events").child(event_key).child("participants").child("Phone Number");
Participants_Phone_no_ref.setValue(val);
break;
default:
break;
}
这样做的目的是,如果有 50 个条目,它只保存第 50 个条目的姓名、电子邮件 ID、国家代码和电话号码,并跳过剩余的 49 个。
【问题讨论】:
标签: android firebase firebase-realtime-database