1 回答

TA貢獻1963條經(jīng)驗 獲得超6個贊
首先,您沒有getUserData()在任何地方調(diào)用方法。我讀到您也嘗試添加該邏輯onCreate(),但是沒有用。
添加偵聽器并不意味著您會立即獲得預期的結果。
僅使用該onMapReady()方法設置地圖,設置不依賴于User. 僅在檢測到User數(shù)據(jù)更改時添加/修改地圖標記。查看更改:
public void getUserData(){
String uID = mAuth.getCurrentUser().getUid();
myRef.child(uID).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
dataSnapshot.getChildren();
user = dataSnapshot.getValue(User.class);
LatLng userL = new LatLng(user.getLat(),user.getLng());
if(mMap!=null){
mMap.clear();
mMap.addMarker(new MarkerOptions().position(userL).title("Your
Location"));
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(userL,17));
}
Toast.makeText(Profile.this, "" + user.lng, Toast.LENGTH_LONG).show(); // Prints the value normally!
}
@Override
public void onCancelled(DatabaseError databaseError) {
Toast.makeText(Profile.this, "Failed to read from database!", Toast.LENGTH_LONG).show();
}
});
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
}
請調(diào)用該方法getUserData()或?qū)⑵浯a移入onCreate().
添加回答
舉報