因此,我一直在尝试实现一种方法来检查用户是否已向访问的个人资料发送了朋友请求,或者用户是否从访问的个人资料中收到了朋友请求。根据结果,按钮将设置为 、 或sent requestaccept requestadd friendfriends
但是,在我的 Firebase 函数中,即使应该满足其中一个语句,也不会满足前 3 个语句。第一个语句应该有效,因为我已经向访问的个人资料发送了加好友请求。ifelse if
当我运行调试时,它显示类似.所以Firebase知道我把约翰·马斯顿(John Marston)作为朋友加了进来,但由于某种原因,这种说法不起作用。相反,它是有效的语句value = {sentFriendRequests={jmarston=2}}else ifelse
我的代码在下面:
检查好友请求状态函数
private void checkFriendRequestStatus(final ButtonStatus buttonsCallback, final String strSignedInUID, final String visitedUsername, final String strVisitedUID) {
final DatabaseReference checkFriendRequestsRef = database.getReference("friend_requests/test/" + strSignedInUID);
checkFriendRequestsRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
// choice is 1 to show buttons, then select which buttons to show with second params
if (dataSnapshot.child("friends/" + visitedUsername).getValue(String.class) == strVisitedUID) {
buttonsCallback.setButtonStatus(1, 1);
}
else if (dataSnapshot.child("sentFriendRequest/" + visitedUsername).getValue(String.class) == strVisitedUID) {
buttonsCallback.setButtonStatus(1, 2);
}
else if (dataSnapshot.child("receivedFriendRequests/" + visitedUsername).getValue(String.class) == strVisitedUID) {
buttonsCallback.setButtonStatus(1, 3);
}
else {
buttonsCallback.setButtonStatus(1, 4);;
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
onViewCreated function
SMILET
相关分类