亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Firebase Android Java - 無法獲得孩子的價值

Firebase Android Java - 無法獲得孩子的價值

千巷貓影 2022-09-07 17:33:18
因此,我一直在嘗試實現一種方法來檢查用戶是否已向訪問的個人資料發送了朋友請求,或者用戶是否從訪問的個人資料中收到了朋友請求。根據結果,按鈕將設置為 、 或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
查看完整描述

1 回答

?
SMILET

TA貢獻1796條經驗 獲得超4個贊

要比較 String 對象,請使用 equal 而不是 == (double equals)。雙相等將比較參考而不是它們的值。


更新您的比較代碼,如下所示:


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).equals(strVisitedUID)) {

                    buttonsCallback.setButtonStatus(1, 1);

                }

                else if (dataSnapshot.child("sentFriendRequest/" + visitedUsername).getValue(String.class).equals(strVisitedUID)) {

                    buttonsCallback.setButtonStatus(1, 2);

                }

                else if (dataSnapshot.child("receivedFriendRequests/" + visitedUsername).getValue(String.class).equals(strVisitedUID)) {

                    buttonsCallback.setButtonStatus(1, 3);

                }

                else {

                    buttonsCallback.setButtonStatus(1, 4);;

                }

            }


            @Override

            public void onCancelled(@NonNull DatabaseError databaseError) {


            }

        });

    }


查看完整回答
反對 回復 2022-09-07
  • 1 回答
  • 0 關注
  • 102 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號