【发布时间】:2017-04-23 23:33:45
【问题描述】:
private boolean authenticateUser(final String role, final String userId) {
DatabaseReference roleReference = FirebaseDatabase.getInstance().getReference().child("role").child(role);
roleReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
HashMap<String, String> map = (HashMap<String, String>) dataSnapshot.getValue();
if (map != null) {
Set<String> userIds = map.keySet();
if (userIds.contains(userId))
authenticationResult = true;
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
return authenticationResult;
}
以上是验证用户的功能。我想返回 true if (userIds.contains(userId)) 否则为 false。但是 authenticateUser 总是返回 false。
【问题讨论】:
-
在这个答案中解释了监听器回调的异步特性:stackoverflow.com/a/41409942/4815718
标签: android firebase firebase-realtime-database