0
我有一個ValueEventListener,並且永遠不會到達內部代碼。我的應用正在進行身份驗證,但我無法檢索數據,我不確定我錯過了什麼。在下面的代碼中,當我檢查時,uid具有正確的值,並且數據路徑(「Users/[uid]」)是正確的,但值事件偵聽器中的內部代碼永遠都不會到達。我也嘗試將一個偵聽器放在根上,結果相同。ValueEventListener永遠不會被輸入
我已經使用菜單選項設置Firebase,將認證和實時數據庫都添加到我的應用程序中;身份驗證工作正常,所以我想知道是否有其他東西需要配置爲實時數據庫?我已經閱讀了文檔,並通過了很多例子,但我看不到任何我想念的東西。
uid = FirebaseAuth.getInstance().getCurrentUser().getUid().toString();
DatabaseReference userRef = ref.child("Users").child(uid).getRef();
ValueEventListener userListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
User user = dataSnapshot.getValue(User.class);
if (user == null) {
SettingsLoad();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e("User", "User not found");
}
};
userRef.addListenerForSingleValueEvent(userListener);
請勿在'child()'之後調用'.getRef()'。這是不必要的,並會在某個時候導致問題(儘管這不是你目前問題的原因)。 Just:'DatabaseReference userRef = ref.child(「Users」)。child(uid);'。 –