只能向Firebase添加一项

时间:2019-09-05 15:11:51

标签: android firebase-realtime-database android-recyclerview

只能向Firebase添加一项。

当我在添加第一个项目后尝试添加一个新项目时,它只会更新我的第一个项目上的孩子。没有添加第二项。 每次我单击保存时,都应该添加一个新项目。 但这不是正在发生的事情。

有人可以帮我吗?

活动:

btnsavewishlist.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            SaveWishlist();

        }
    });


}

private void SaveWishlist() {

    Calendar calFordDate = Calendar.getInstance();
    SimpleDateFormat currentDate = new SimpleDateFormat("dd-MMMM-yyyy");
    saveCurrentDate = currentDate.format(calFordDate.getTime());

    postRandomName = saveCurrentDate;

    final String wishlist = spwishlisttitle.getSelectedItem().toString().trim();



    usersRef.child(current_user_id).addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            if (dataSnapshot.exists()) {

                String userFirstname = dataSnapshot.child("fornavn").getValue().toString();
                String userProfileImage = dataSnapshot.child("profilbilde").getValue().toString();

                HashMap postMap = new HashMap();
                postMap.put("uid", current_user_id);
                postMap.put("date", saveCurrentDate);
                postMap.put("title", wishlist);
                postMap.put("profilbilde", userProfileImage);
                postMap.put("fornavn", userFirstname);
                wishListRef.child(current_user_id).child(current_user_id + postRandomName).updateChildren(postMap)
                        .addOnCompleteListener(new OnCompleteListener() {
                            @Override
                            public void onComplete(@NonNull Task task) {

                                if (task.isSuccessful()) {

                                    SendUserToMainActivity();
                                    Toast.makeText(WishListActivity.this, "Ønskeliste opprettet", Toast.LENGTH_SHORT).show();

                                } else {

                                    Toast.makeText(WishListActivity.this, "Error ocurred", Toast.LENGTH_SHORT).show();

                                }

                            }
                        });


            }

        }

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

        }
    });

1 个答案:

答案 0 :(得分:2)

您的 postRandomName 变量不会全天更改。因此对于同一用户,const selectedRow = this.gridApi.getSelectedRows(); this.gridApi.updateRowData({ remove: selectedRow }); 将保持不变,直到第二天。因此您需要一个更好的postRandomName随机值。您可以只使用current_user_id + postRandomName,它将为您提供更好的随机字符串。