[英]Read and Write operation to Firebase in Android
我正在嘗試制作一個可從Firebase讀取緯度和經度並寫入相同值的跟蹤器應用程序。 在Firebase中,我在RootReference之后有一個名為“ Raunak Trikha”的孩子,其中有兩個孩子“ lat”和“ long”。 我想從這些孩子那里讀取和寫入當前位置的值。 現在,我已將Firebase成功集成到我的android項目中。 我無法自行獲取這些值,請提供幫助。 我是新手,請嘗試編輯我的代碼,也歡迎提出其他建議。 她是我的代碼:
MapsActivity.java`
public class MapsActivity extends AppCompatActivity implements
OnMapReadyCallback,ValueEventListener {
private GoogleMap mMap;
private GPS_Tracker gpsTracker;
private Location mLocation;
double latitude, longitude;
private FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
private DatabaseReference mRootReference = firebaseDatabase.getReference();
private DatabaseReference mChildReference = mRootReference.child("Raunak Trikha");
private DatabaseReference mChildReference1 = mChildReference.child("id");
private DatabaseReference mChildReference2 = mChildReference1.child("lat");
private DatabaseReference mChildReference3 = mChildReference1.child("long");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
gpsTracker = new GPS_Tracker(getApplicationContext());
mLocation = gpsTracker.getLocation();
latitude = mLocation.getLatitude();
longitude = mLocation.getLongitude();
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
mChildReference2.setValue(latitude);
mChildReference3.setValue(longitude);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// Add a marker in Sydney and move the camera
mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
LatLng sydney = new LatLng(latitude, longitude);
//LatLng r=new LatLng(value,rlong);
mMap.addMarker(new MarkerOptions().position(sydney).title("I'm here...").icon(BitmapDescriptorFactory.fromResource(R.mipmap.download)));
mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
//mMap.addMarker(new MarkerOptions().position(r).title("I'm here...").icon(BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher)));
}
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.getValue(double.class)!=null){
String key=dataSnapshot.getKey();
if(key.equals("lat")){
double rlat=dataSnapshot.getValue(double.class);
}
else if(key.equals("long")){
double rlong=dataSnapshot.getValue(double.class);
}
}
LatLng r=new LatLng(rlat,rlong);
mMap.addMarker(new MarkerOptions().position(r).title("I'm here...").icon(BitmapDescriptorFactory.fromResource(R.mipmap.download)));
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
@Override
protected void onStart(){
super.onStart();
mChildReference2.addValueEventListener(this);
mChildReference3.addValueEventListener(this);
}`
將此替換為onDataChange
@Override
public void onDataChange(DataSnapshot dataSnapshot)
{
if(dataSnapshot.getValue()!=null){
String key=dataSnapshot.getKey();
if(key.equals("lat")){
String rlat=dataSnapshot.getValue();
}
else if(key.equals("long")){
String rlong=dataSnapshot.getValue();
}
}
LatLng r=new
LatLng(Double.parseDouble(rlat),Double.parseDouble(rlong));
mMap.addMarker(new
MarkerOptions().position(r).title("I'm
here...")
.icon(BitmapDescriptorFactory
.fromResource(R.mipmap.download)));
}
希望能有所幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.