java - 从 firebase 数据库中删除节点
问题描述
我想从我的 Firebase 数据库中删除一个节点“全部”。
这是我的数据库结构:
它是默认生成的节点。我没有在代码中的任何地方添加它。下面是我将数据插入 Firebase 数据库的代码。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_details);
etemail_id = (EditText) findViewById(R.id.etEmailid);
etpassword = (EditText) findViewById(R.id.etPassword);
tvlogin_details = (TextView) findViewById(R.id.tvLoginDetails);
btback = (Button) findViewById(R.id.btBack);
mAuth = FirebaseAuth.getInstance();
btregister = (Button) findViewById(R.id.btRegister);
database=FirebaseDatabase.getInstance();
reference=database.getReference();
users=new Users();
btregister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final String email = etemail_id.getText().toString().trim();
final String password = etpassword.getText().toString().trim();
if (TextUtils.isEmpty(email)) {
etemail_id.setError("Provide your Email first!");
etemail_id.requestFocus();
}
else if (TextUtils.isEmpty(password)) {
etpassword.setError("Enter Password!");
etpassword.requestFocus();
}
else if (!(email.isEmpty() && password.isEmpty())) {
mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(LoginDetails.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
SharedPreferences sp = getSharedPreferences("Mypref", Context.MODE_PRIVATE);
reference.child("User").child(mAuth.getUid()).setValue(sp);
Toast.makeText(getApplicationContext(), "data entered", Toast.LENGTH_SHORT).show();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(getApplicationContext(), "database error", Toast.LENGTH_SHORT).show();
}
});
Toast.makeText(LoginDetails.this, "Successfully registered", LENGTH_LONG).show();
Intent it = new Intent(getApplicationContext(), Login.class);
startActivity(it);
}
else {
Toast.makeText(LoginDetails.this, "Registration Error", LENGTH_LONG).show();
}
}
});
}
else {
Toast.makeText(LoginDetails.this, "Error", Toast.LENGTH_SHORT).show();
}
}
});
}
请检查它有什么问题。
解决方案
根据您的评论,要删除all
节点,请使用以下代码行:
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference allRef = rootRef.child("User").child(uid).child("all");
allRef.removeValue().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d(TAG, "all node deleted");
}
}
});;
推荐阅读
- django - Django FileResponse - 如何加快文件下载
- r - 比较数据框以提取特定值
- python - 使用用户输入导入包——Python v3.6
- xamarin.forms - 如何在 Xamarin.Forms 的 PageRenderer for Android 中实现 IPlatformParameters
- angular - 类型'可观察的
>' 不可分配给类型 'Observable<>' - node.js - Rxjava2如何简洁地将结果从前一个节点返回到链中的下一个节点
- firebase - user_pseudo_id 是否与会话 id 相同?如何按会话对所有事件进行分组?- Firebase 大查询
- php - 设置数组键/值对并访问
- mysql - mysql内部连接3个表从最大日期获取最后一条记录
- angular - 找不到 angular2-jwt