当用户使用他们的Google帐户登录时,我需要使用他们的电子邮件在我的firebase中创建一个数据库用户,如果用户已经存在同一个电子邮件,我不需要创建另一个。我写了这样的话:
mAuthListener = new FirebaseAuth.AuthStateListener(){
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
if(firebaseAuth.getCurrentUser() != null){
String userGoogleEmail = firebaseAuth.getCurrentUser().getEmail();
databaseUser.orderByChild("userEmail").equalTo(userGoogleEmail);
Toast.makeText(Activity_log_in.this, "already have", Toast.LENGTH_LONG).show();
startActivity( new Intent(Activity_log_in.this, List.class));
}
}
};
但是我需要在查询之前检查一个条件,而我不知道该怎么做
答案 0 :(得分:0)
考虑执行以下操作:
databaseUser.orderByChild("userEmail").equalTo(userGoogleEmail).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.getChildrenCount() == 0){
//Can create new user
}else{
//User already exists
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Getting Post failed, log a message
Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
// ...
}
}););
希望有效!