这是相关的android代码:
mAuth.signInWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()){
mLoginProgress.dismiss();
final String current_user_id = mAuth.getCurrentUser().getUid();
String deviceToken = FirebaseInstanceId.getInstance().getToken();
DatabaseReference itsUser = mUsersDatabaseReference.child(current_user_id);
DatabaseReference itsPilot = mPilotsDatabaseReference.child(current_user_id);
我有current_user_id,我想知道它是用户还是飞行员。 所以我有这两个网址: https://console.firebase.google.com/u/0/project/...-96d4e/database/airpal-96d4e/data/Users/mbGyPElqNphTritK5iyN8bXadSK2
这是状态: 您可以很容易地看到,我的current_user_id是'User'而不是'Pilot'。 我只想通过代码来做。
当我将它们插入到其中一个中的chrome中时,该子项为null,并且其中一个中它具有字段。
我怎么能认出来?
阅读dataSnapshot分别为我提供了所有字段,我更喜欢更清晰的解决方案。感谢
编辑: 解决方案是通过值事件侦听器和仅限snapShot
itsUser.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.d("dDebug","i'm here");
pilotBool = (dataSnapshot.getChildrenCount() == 0);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
答案 0 :(得分:2)
在查询数据库以获取包含查询位置内容的快照之前,您无法了解数据库中的任何内容。没有特殊的查询来检查不存在快照的存在。