我正在尝试从数据库中的一个表中检索数据并插入到另一个表中,但是分配了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);
这是我通过调试运行代码时得到的: