Cara Menyemak Kewujudan Nilai dalam Pangkalan Data Firebase
Dalam pembangunan Android dengan Pangkalan Data Masa Nyata Firebase, adalah penting untuk memastikan keunikan pengguna butiran semasa mendaftar akaun baharu. Oleh itu, adalah penting untuk mengesahkan sama ada nama pengguna tertentu telah wujud sebelum membenarkan penciptaan pengguna.
Pernyataan Masalah
Kaedah tersuai, usernameExists(), pada mulanya digunakan untuk menyemak kewujudan nama pengguna. Walau bagaimanapun, ia secara konsisten kembali benar, menghalang proses pengesahan yang tepat.
Penyelesaian
Kaedah getReference() bagi FirebaseDatabase mengembalikan objek DatabaseReference.
Bertentangan dengan andaian bahawa getReference() mengembalikan null jika laluan yang ditentukan tidak wujud, ia sebenarnya mencipta objek DatabaseReference tanpa mengira kewujudan laluan. Oleh itu, menggunakan (fdbRefer != null) sebagai syarat untuk kewujudan nama pengguna adalah tidak betul.
Untuk mengesahkan kewujudan nilai, ValueEventListener boleh digunakan. Begini caranya:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); DatabaseReference userNameRef = rootRef.child("Users").child("Nick123"); ValueEventListener eventListener = new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { if (!dataSnapshot.exists()) { // Create a new user with the specified username. } } @Override public void onCancelled(DatabaseError databaseError) { Log.d(TAG, databaseError.getMessage()); // Handle errors appropriately. } }; userNameRef.addListenerForSingleValueEvent(eventListener);
Pendekatan ini membolehkan anda menyemak kewujudan laluan tertentu dan mengendalikan hasilnya dengan sewajarnya. Sebagai alternatif, anda boleh menggunakan Pertanyaan untuk melakukan semakan yang sama:
Query query = rootRef.child("Users").orderByChild("userName").equalTo("Nick123"); query.addValueEventListener(/* ... */);
Perhatikan bahawa terdapat pendekatan lain yang tersedia, seperti mencipta nod "Nama pengguna" yang berasingan untuk menyimpan nama pengguna unik atau menggunakan pengecam unik seperti UID pengguna. Penyelesaian yang disyorkan, bagaimanapun, adalah menggunakan kaedah ValueEventListener yang digariskan di atas.
Atas ialah kandungan terperinci Bagaimana untuk Semak Kewujudan Nama Pengguna dalam Pangkalan Data Masa Nyata Firebase?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!