2017-08-11 32 views
0

正在尋找我在相當一段時間內做錯了什麼,希望能在這裏找到一些幫助。我正在嘗試從Firebase填充文本視圖。從Firebase填充Textview。錯誤:無法在參數'pathString'中傳遞null()

private TextView txtDetails; 
private DatabaseReference mFirebaseDatabase; 
private FirebaseDatabase mFirebaseInstance; 
private String userId; 
private EditText inputLastName; 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.gb_personal_profile); 

    txtDetails = (TextView) findViewById(R.id.txt_profile_name); 

    mFirebaseDatabase = 
FirebaseDatabase.getInstance().getReference("users"); 

    mFirebaseDatabase.child(userId).addValueEventListener(new 
ValueEventListener() { 

     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      gbCreationUNameDB user = 
dataSnapshot.getValue(gbCreationUNameDB.class); 


      txtDetails.setText(user.first_name); 

     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 
} 
} 

,這裏是用戶

import com.google.firebase.database.IgnoreExtraProperties; 

@IgnoreExtraProperties 
public class gbCreationUNameDB { 
public String first_name; 
public String last_name; 


public gbCreationUNameDB() { 
} 

public gbCreationUNameDB(String first_name, String last_name) { 
    this.first_name = first_name; 
    this.last_name = last_name; 
} 

public String getfirst_name() { 
    return first_name; 
} 
} 

幫助不勝感激。已經檢查了所有的資源,當你從dataSnapshot對象,你正在使用這行代碼得到的gbCreationUNameDB class對象不能弄清楚

+0

看來「用戶id」是當你試圖調用mFirebaseDatabase.child(用戶ID)... – Kim

回答

0

txtDetails.setText(user.first_name); 

這意味着你正在試圖獲得直接輸入first_name字段的值,但這種方法是錯誤的。要獲得該值,則需要使用公共的getter這樣的:

txtDetails.setText(user.getfirst_name()); 

其次,在你DatabaseReference只有一個可以爲null元素,這是userId。正如我在你的代碼中看到的,你沒有從任何地方獲得這個元素。因此,要獲得用戶uid,請使用以下代碼:

FirebaseUser firebaseUser = firebaseAuth.getCurrentUser(); 
if (firebaseUser != null) { 
    String userId = firebaseUser.getUid(); 
} 

希望它有幫助。

+0

嗨亞歷克斯空,我都試過了,但不知何故仍然得到同樣的錯誤 – Victor