簡體   English   中英

如何檢查 firebase 數據庫中的願望清單數據是否為空

[英]How can I check wishlist data is empty or not in firebase database

我想檢查用戶 UID 下的“願望清單”是否為空,因為如果“願望清單”為空,我將在其中創建“願望清單 2”。 如何在我的 firebase 數據庫中檢查此“願望清單是否為空。

這個概念是這樣的 - 檢查願望清單是否為空,如果願望清單為空,那么我將在數據庫中創建另一個願望清單 2。 願望清單不是默認的,它只會在用戶在願望清單中添加例如項目 1 並且如果用戶已經在願望清單中添加項目 1 時創建。 我將為他的項目 2 創建願望清單 2

這是我的 firebase 數據庫的屏幕截圖1

這是我的代碼

public class web_view extends AppCompatActivity {
    //for fav
    FloatingActionButton fab;

    private WebView webView;

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

        //fab start here
        
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String passURL = getIntent().getStringExtra("key");
                if (passURL.matches("[0-9]+") && passURL.length()>= 10){ ////if fav book input is ISBN number
                    FirebaseDatabase.getInstance().getReference("Users")
                            .child(FirebaseAuth.getInstance().getCurrentUser().getUid()).child("Wishlist")// which child goes to under the current user UID
                            .setValue("http://www.librarything.com/isbn/" + passURL).addOnCompleteListener(new OnCompleteListener<Void>() {
                        @Override
                        public void onComplete(@NonNull Task<Void> task) {
                            if(task.isSuccessful()){
                                Toast.makeText(web_view.this, "Saved to Wishlist", Toast.LENGTH_LONG).show();
                            }
                        }
                    });
                }else {//if wish list book is no ISBN
                    Toast.makeText(web_view.this, "Can't Save", Toast.LENGTH_LONG).show();
                }
            }
        });
}
}

好的,您可以使用.push()來執行此操作,它將為您的願望清單中的每個元素自動生成 ID。 所以你可以這樣做:

DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("Users").child(FirebaseAuth.getInstace().getCurrentUser().getUid()).child("Wishlist");
myRef.push().setValue(newWishlistString);

這將在 Firebase 中生成類似這樣的內容:

在此處輸入圖像描述

然后你可以像這樣檢索它:

DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("Users").child(FirebaseAuth.getInstace().getCurrentUser().getUid()).child("Wishlist");

myRef.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot snapshot) {
               //do something here with data
    }

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

    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM