根据 Android 中的微调器选择删除 Firebase child
Remove Firebase child based on spinner selection in Android
我是 Android Studio 的新手,所以这对你们中的一些人来说可能很容易。
我有一个微调器,可以从 Firebase 数据库读取访客姓名。
选择名称并单击按钮后,我希望将 child 从数据库中删除。
这是我在 onCreate 中用于 Spinner 的代码:
databaseVisitors = FirebaseDatabase.getInstance().getReference();
databaseVisitors.child("visitorsToCO").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot datasnapshot) {
final List<String> visitorsToCO = new ArrayList<String>();
for (DataSnapshot areaSnapshot: datasnapshot.getChildren()) {
String visitorName = areaSnapshot.child("visitorName").getValue(String.class);
if (visitorName!=null){
visitorsToCO.add(visitorName);
}
}
Spinner spinnerV = (Spinner) findViewById(R.id.visitorName);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(CheckOutActivity.this, android.R.layout.simple_spinner_item, visitorsToCO);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerV.setAdapter(arrayAdapter);
}
这是我的按钮代码:
btnCheckOut2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addVisitorCheckOut();
deleteVisitorToCO();
openMainActivity();
}
});
public void deleteVisitorToCO()
{
databaseVisitors = FirebaseDatabase.getInstance().getReference("visitorsToCO");
final String name = visitorName.getSelectedItem().toString();
Query query = databaseVisitors.child("visitorsToCO").orderByChild("visitorName").equalTo(name);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot itemSnapshot : dataSnapshot.getChildren()) {
itemSnapshot.getRef().removeValue();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
databaseVisitors = FirebaseDatabase.getInstance().getReference();
databaseVisitors.child("visitorsToCO").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot datasnapshot) {
for (DataSnapshot areaSnapshot: datasnapshot.getChildren()) {
if(areaSnapshot.child(visitorName).getValue().toString().equals(spinnerV.getSelectedItem().toString()))
{
areaSnapShot.setValue(null);
}
}
}
我是 Android Studio 的新手,所以这对你们中的一些人来说可能很容易。
我有一个微调器,可以从 Firebase 数据库读取访客姓名。
选择名称并单击按钮后,我希望将 child 从数据库中删除。
这是我在 onCreate 中用于 Spinner 的代码:
databaseVisitors = FirebaseDatabase.getInstance().getReference();
databaseVisitors.child("visitorsToCO").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot datasnapshot) {
final List<String> visitorsToCO = new ArrayList<String>();
for (DataSnapshot areaSnapshot: datasnapshot.getChildren()) {
String visitorName = areaSnapshot.child("visitorName").getValue(String.class);
if (visitorName!=null){
visitorsToCO.add(visitorName);
}
}
Spinner spinnerV = (Spinner) findViewById(R.id.visitorName);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(CheckOutActivity.this, android.R.layout.simple_spinner_item, visitorsToCO);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerV.setAdapter(arrayAdapter);
}
这是我的按钮代码:
btnCheckOut2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addVisitorCheckOut();
deleteVisitorToCO();
openMainActivity();
}
});
public void deleteVisitorToCO()
{
databaseVisitors = FirebaseDatabase.getInstance().getReference("visitorsToCO");
final String name = visitorName.getSelectedItem().toString();
Query query = databaseVisitors.child("visitorsToCO").orderByChild("visitorName").equalTo(name);
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot itemSnapshot : dataSnapshot.getChildren()) {
itemSnapshot.getRef().removeValue();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
databaseVisitors = FirebaseDatabase.getInstance().getReference();
databaseVisitors.child("visitorsToCO").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot datasnapshot) {
for (DataSnapshot areaSnapshot: datasnapshot.getChildren()) {
if(areaSnapshot.child(visitorName).getValue().toString().equals(spinnerV.getSelectedItem().toString()))
{
areaSnapShot.setValue(null);
}
}
}