Как добавить дочерний элемент и значение на родительский элемент в базе данных Firebase? - PullRequest
0 голосов
/ 25 мая 2019

Я пытаюсь добавить дочерний элемент и значение в родительский элемент в базе данных Firebase, но по какой-то причине после добавления данных происходит сбой приложения. Кто-нибудь может мне помочь? Это моя база данных:

Database

Я сделал добавление, которое выглядит так:

Addding

Но после того, как я нажму кнопку, которая вернется в меню, произойдет сбой.

Это код, который я сделал:

public class Payment extends AppCompatActivity {

private static final String TAG = "AddToDatabase";

private RecyclerView mRecyclerView2;
private ViewHolder2 mAdapter2;
private DatabaseReference mDatabaseReference2;
private FirebaseAuth.AuthStateListener mAuthListener;
private FirebaseDatabase mFirebaseDatabase;
private DatabaseReference myRef;
private List<Model2> mModel2;
private FirebaseAuth mAuth;
private TextView Total;

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


    mRecyclerView2 = findViewById(R.id.recyclerview3);
    mRecyclerView2.setHasFixedSize(true);
    mRecyclerView2.setLayoutManager(new LinearLayoutManager(this));

    mModel2 = new ArrayList<>();
    mAuth = FirebaseAuth.getInstance();
    FirebaseUser user = mAuth.getCurrentUser();
    String userID = user.getUid();
    mAdapter2 = new ViewHolder2(Payment.this, mModel2);
    mRecyclerView2.setAdapter(mAdapter2);
    mDatabaseReference2 = FirebaseDatabase.getInstance().getReference(userID).child("Ordered");
    mDatabaseReference2.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            double cost = 0;
            for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                Model2 model2 = postSnapshot.getValue(Model2.class);
                String stringValue = model2.getPrice();
                double price = Double.parseDouble(stringValue);

                cost = price + cost;
                String finaltotal = String.valueOf(cost);
                Total = findViewById(R.id.totalprice);
                Total.setText("Total Cost:" + finaltotal);

                mModel2.add(model2);
            }
            mAdapter2.notifyDataSetChanged();

        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });

    mFirebaseDatabase = FirebaseDatabase.getInstance();
    myRef = mFirebaseDatabase.getReference();

    mAuthListener = new FirebaseAuth.AuthStateListener() {
        @Override
        public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
            FirebaseUser user = firebaseAuth.getCurrentUser();
            if (user != null) {
                // User is signed in
                Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid());
            } else {
                // User is signed out
                Log.d(TAG, "onAuthStateChanged:signed_out");
            }
        }
    };
    ///progressBar = findViewById(R.id.progressbar);

    // Read from the database
    myRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            Object value = dataSnapshot.getValue();
            Log.d(TAG,"Value is"+value);
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });


}

public void onPayButton(View view) {

    //String newClick = Integer.toString(click1);
    FirebaseUser user = mAuth.getCurrentUser();
    String userID = user.getUid();
    myRef.child(userID).child("Ordered").child("5").child("food").setValue("Order Processing....");
    Intent intent = new Intent(Payment.this,Placeorder.class);
    startActivity(intent);
}

}

И это сообщение об ошибке:

Error.

Может кто-нибудь помочь мне, пожалуйста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...