2017-11-05 14 views
0

に私firebaseデータベースに名前のノードを追加することができ、私は私がリストビューに単一firebaseノードを追加することができますどのように、リストビューに名前のノードを追加しようとしていますか?私はいくつかのことを試みましたが、できませんでした。仮想 方法「com.google.firebase.database.DatabaseReference com.google.firebase.database.FirebaseDatabase.getReference(javaの起動しようとすると:java.lang.NullPointerExceptionが:私のcatlogはによって引き起こさはどのように私はこれは私のデータベースの画像 <a href="https://i.stack.imgur.com/NA2wK.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/NA2wK.png" alt="enter image description here"></a></p> <p>あるリストビュー

を」と言います。 lang.String) ' nullオブジェクトリファレンスに "

私はfirebaseの新機能です。あなたの参照をインスタンス化していなかったので、あなたはnullを取得している

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference userRef = rootRef.child("user"); 

DatabaseReference myRef = database.getReference("user"); 

:このコード行を変更、この問題を解決するには

public class Technician extends Activity { 
private FirebaseDatabase database; 

ListView listView; 
ArrayList<String> tecnames = new ArrayList<>(); 
private FirebaseAuth mAuth; 

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

    ImageButton Back_Btn = (ImageButton) findViewById(R.id.back); 
    Back_Btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent i = new Intent(Technician.this, Technician_main.class); 
      startActivity(i); 
      finish(); 
     } 
    }); 

    DatabaseReference myRef = database.getReference("user"); 
    myRef.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      for (DataSnapshot childSnapshot : dataSnapshot.getChildren()) { 
       String value = childSnapshot.getValue(String.class); 
       tecnames.add(value); 
      } 
     } 

     @Override 
     public void onCancelled(DatabaseError error) { 
      // Failed to read value 
      Log.w(TAG, "Failed to read value.", error.toException()); 
     } 
    }); 

    listView = (ListView) findViewById(R.id.list_item); 
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 


      Intent intent = new Intent(Technician.this, Book_Now.class); 
      startActivity(intent); 
      finish(); 
     } 
    }); 

    Technician.CostumAdapter costumAdapter = new Technician.CostumAdapter(); 
    listView.setAdapter(costumAdapter); 

} 

private class CostumAdapter extends BaseAdapter { 


    @Override 
    public int getCount() { 
     return tecnames.size(); 
    } 

    @Override 
    public Object getItem(int i) { 
     return null; 
    } 

    @Override 
    public long getItemId(int i) { 
     return 0; 
    } 

    @Override 
    public View getView(int i, View view, ViewGroup viewGroup) { 

     view = getLayoutInflater().inflate(R.layout.cuctom_listview, null); 

     TextView txt_one = (TextView) view.findViewById(R.id.skill_txt); 
     txt_one.setText(tecnames.get(i)); 
     return view; 
    } 

} 
} 

答えて

0

+0

まだ値がnullになっています –

+0

Firebaseコンソールで権限を正しく設定しましたか? –

+0

uはルール{ "ルール" を意味します:{ "ユーザー":{ "の$ UID":{ ".WRITE ": "!AUTH = NULL && auth.uid == $のUID"、 " .readを" : "auth!= null && auth.uid == $ uid" } } } } –

関連する問題

 関連する問題