目標:私は(Androidの中で。)Firebaseからデータを取得し、ネストされたノードから文字列に値を挿入しようとしていますFirebase - (複数の子ノードを持つDataSnapshot) - NullPointerExceptionが
注:それは最初の変数/キーと値のペア(MNUM)用FINEが、他
研究ためにNullPointerを取得します。このSPEについてFirebaseドキュメント、YouTubeの、stackoverflowの含むcific質問:トラブルDBは、複数のネスト
エラーある場合Firebaseデータベース情報の取得についての情報を見つける:
java.lang.NullPointerException: println needs a message
at android.util.Log.println_native(Native Method)
at android.util.Log.i(Log.java:211)
at com.netgalaxystudios.timeclock.RegisterSubscriptionActivity$1.onDataChange(RegisterSubscriptionActivity.java:80)
エラー箇所に、これは他の人に適用される方法How to get child of child value from firebase in android?
この行:Log.i( "マイクロ名"、マイクロ)。
データベース:RegisterSubscriptionActivity.java
を使用しているFirebase DBの 画像:
public class RegisterSubscriptionActivity extends Activity {
private DatabaseReference mDatabase;
private DatabaseReference mDatabaseMicro;
ArrayList subscriptionInfo;
//Subscription (String) values
String micro, small, medium, large, enterprise;
String mNum, sNum, medNum, lNum, eNum;
String mPrice, sPrice, medPrice, lPrice, ePrice;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register_subscription);
subscriptionInfo = new ArrayList<>();
//GET INSTANCE OF FIREBASE DB & GRAB SUBSCRIPTION DATA
mDatabase = FirebaseDatabase.getInstance().getReference("Subscription");
mDatabaseMicro = mDatabase.child("Micro");
mDatabaseMicro.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) { //literally a "snapshot" of the data
//dataSnapshot.
for(DataSnapshot subscriptionDataSnapshot : dataSnapshot.getChildren()) {
if (subscriptionDataSnapshot.getKey().equals("mNum")) {
mNum= subscriptionDataSnapshot.getValue().toString();
}
if(subscriptionDataSnapshot.getKey().equals("mPrice")) {
mPrice = subscriptionDataSnapshot.getValue().toString();
}
if(subscriptionDataSnapshot.getKey().equals("micro")) {
micro = subscriptionDataSnapshot.getValue().toString();
}
Log.i("micro number", mNum);
//Log.i("micro price", mPrice);
Log.i("micro name", micro);
String subscriptions = subscriptionDataSnapshot.getValue(String.class); //Each time it gets the key/value pair per node
subscriptionInfo.add(subscriptions);
}