我需要有关如何将数据从一个节点移动到另一个节点的帮助。所以,这是我的数据库的截图。 https://imgur.com/a/26kSL
我需要从' mastersheet'中传输数据。节点到'事件'节点。您可以忽略有关添加事件名称的部分,即" Marathon"在这种情况下。 你可以放心地假设在" mastersheet"节点,"名称"将始终在" 2","电子邮件" at" 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个。
答案 0 :(得分:0)
将数据从节点移动到另一个节点的解决方案如下。因为Firebase不提供神奇的move()
方法,所以您需要自己完成,流程是这样的:
mastersheet
节点上附加一个侦听器。DataSnapshot
对象以获取所有孩子。events
节点的参考。setValue()
方法,并直接在引用上使用该方法。