从表中检索数据到Firebase中的另一个表

时间:2019-11-13 00:09:57

标签: java android firebase firebase-realtime-database

我正在尝试从数据库中的一个表中检索数据并插入到另一个表中,但是分配了null而不是值。我想从“帐户”表中获取当前用户的名称,然后插入“预订”表中。

mDatabase.getReference().child("Accounts").child(mAuth.getCurrentUser().getUid()).addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        if(dataSnapshot.exists()){

                Accounts accounts = dataSnapshot.getValue(Accounts.class);
                assert accounts != null;
                Value = accounts.getName();
        }
    }

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

    }
});

这是从“帐户”表中检索到的值的插入代码:

mDatabase.getReference("Booking").child(mKeys.get(position)).child("name").setValue(Value);

这是我要调用上述语句的部分:

        holder.mCardView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if(mBookList.get(position).getPic().equals("button")&&mBookList.get(position).isAvailability()){
                AlertDialog.Builder builder=new AlertDialog.Builder(mContext);
                builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Picasso.with(mContext).load(R.drawable.unavailablef).into(holder.imageView);
                        mDatabase.getReference("Booking").child(mKeys.get(position)).child("availability").setValue(false).addOnSuccessListener(new OnSuccessListener<Void>() {
                            @Override
                            public void onSuccess(Void aVoid) {
                                Toast.makeText(mContext,"Confirmed",Toast.LENGTH_SHORT).show();
                            }
                        });
                        mDatabase.getReference("Booking").child(mKeys.get(position)).child("userID").setValue(mUser.getUid());
                        information();
                        mDatabase.getReference("Booking").child(mKeys.get(position)).child("name").setValue(Value);

这是我通过调试运行代码时得到的:

0 个答案:

没有答案