如何将 firebase 数据从一个 activity 传递到另一个?
How to pass firebase data from one activity to another?
我想将数据从一个 activity 传递到另一个,首先我从 Firebase 实时数据库下载它然后将它传递到另一个 activity 以及如何在其中使用它。
我的数据是这样的(图片来自网络)
cam_firebase.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NotNull DataSnapshot dataSnapshot, String s) {
// long count = dataSnapshot.getChildrenCount();
double longt = dataSnapshot.child("longt").getValue(Double.class);
double lat = dataSnapshot.child("lat").getValue(Double.class);
String type = dataSnapshot.child("type").getValue(String.class);
List<Model> list = new ArrayList<>();
list.add(new Model());
list.get(0).setLat(lat);
list.get(0).setLongt(longt);
cameras_info.onCallback();
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(@NonNull @NotNull DatabaseError error) {
}
});
假设pXGb...lGE2
是logged-in用户的UID,为了能够读取到你的schema对应的数据,那么请使用如下几行代码:
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference db = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = db.child("ProgressReportss").child(uid);
uidRef.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
@Override
public void onComplete(@NonNull Task<DataSnapshot> task) {
if (task.isSuccessful()) {
DataSnapshot snapshot = task.getResult();
for (DataSnapshot ds : snapshot.getChildren()) {
String content = ds.child("content").getValue(String.class);
String timestamp = ds.child("timestamp").getValue(String.class);
String title = ds.child("title").getValue(String.class);
Log.d("TAG", content + "/" + timestamp + "/" + title);
}
} else {
Log.d("TAG", task.getException().getMessage()); //Never ignore potential errors!
}
}
});
logcat 中的结果将是:
Test 2/30-11-2018/Test 2
Test 3/30-11-2018/Test 3
Test 4/30-11-2018/Test 4
你就是这么读的。如果您需要将数据发送到另一个 activity,在 onComplete()
中使用以下答案中的逻辑:
- How to pass an object from one activity to another on Android
我想将数据从一个 activity 传递到另一个,首先我从 Firebase 实时数据库下载它然后将它传递到另一个 activity 以及如何在其中使用它。
我的数据是这样的(图片来自网络)
cam_firebase.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NotNull DataSnapshot dataSnapshot, String s) {
// long count = dataSnapshot.getChildrenCount();
double longt = dataSnapshot.child("longt").getValue(Double.class);
double lat = dataSnapshot.child("lat").getValue(Double.class);
String type = dataSnapshot.child("type").getValue(String.class);
List<Model> list = new ArrayList<>();
list.add(new Model());
list.get(0).setLat(lat);
list.get(0).setLongt(longt);
cameras_info.onCallback();
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(@NonNull @NotNull DatabaseError error) {
}
});
假设pXGb...lGE2
是logged-in用户的UID,为了能够读取到你的schema对应的数据,那么请使用如下几行代码:
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference db = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = db.child("ProgressReportss").child(uid);
uidRef.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
@Override
public void onComplete(@NonNull Task<DataSnapshot> task) {
if (task.isSuccessful()) {
DataSnapshot snapshot = task.getResult();
for (DataSnapshot ds : snapshot.getChildren()) {
String content = ds.child("content").getValue(String.class);
String timestamp = ds.child("timestamp").getValue(String.class);
String title = ds.child("title").getValue(String.class);
Log.d("TAG", content + "/" + timestamp + "/" + title);
}
} else {
Log.d("TAG", task.getException().getMessage()); //Never ignore potential errors!
}
}
});
logcat 中的结果将是:
Test 2/30-11-2018/Test 2
Test 3/30-11-2018/Test 3
Test 4/30-11-2018/Test 4
你就是这么读的。如果您需要将数据发送到另一个 activity,在 onComplete()
中使用以下答案中的逻辑:
- How to pass an object from one activity to another on Android