2016-08-18 59 views
1

美好的一天。 我已经尝试了我的级别,但没有更新数据,只要我输入新的“名称”,“年龄”或任何前面输入的数据被抹掉。我想使用推或其他更新数据。但仍然无法去做。如何更新我的Firebase数据库字段?

nameRef.addValueEventListener(new com.google.firebase.database.ValueEventListener() { 
      @Override 
      public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) { 


       String text = dataSnapshot.getValue(String.class); 
       String ho = name.getText().toString(); 

       nameRef.setValue(ho); 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 
     genderRef.addValueEventListener(new com.google.firebase.database.ValueEventListener() { 
      @Override 
      public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) { 
       String text = dataSnapshot.getValue(String.class); 
       String ho = gender.getText().toString(); 
       genderRef.setValue(ho); 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 
     ageRef.addValueEventListener(new com.google.firebase.database.ValueEventListener() { 
      @Override 
      public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) { 
      `enter code here`  String text = dataSnapshot.getValue(String.class); 
       String ho = age.getText().toString(); 
       ageRef.setValue(ho); 

      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 
     EmailRef.addValueEventListener(new com.google.firebase.database.ValueEventListener() { 
      @Override 
      public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) { 
       String text = dataSnapshot.getValue(String.class); 
       String ho = email.getText().toString(); 
       EmailRef.setValue(ho); 

      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 

回答

0

如果你有一个JSON树是这样的:

->users 
    ->uid 
     ->name 
     ->age 
     ->gender 
     ->email 

然后更新数据库中的值,你应该做这样的事情:

DatabaseReference mFirebaseDBRef = FirebaseDatabase.getInstance().getReference(); 
FirebaseAuth mFirebaseAuth = FirebaseAuth.getInstance(); 
FirebaseUser mFirebaseUser = mFirebaseAuth.getCurrentUser(); 

//use a POJO and make sure to have a default empty constructor in that class definition 
User user = new User(name, age, gender, email) 
mFirebaseDBRef.child("users").child(mFirebaseUser.getUid()).setValue(user); 

,并应更新数据库!如果有什么不清楚的地方,随时提问。

+0

什么是用户?是一个类? –

+0

有没有办法可以使用push()? @Ghost_Stark –

+0

是的,这是一个POJO(普通Java对象)类,您创建该类用于存储每个用户的数据字段或存储数据的任何对象。 –