[英]How to retrieve data from Firebase Realtime Database to mySqlite?
上图显示了我的 Firebase 数据库的数据库结构,这就是我的 firebase 实时数据库如何节省费用。 如何借助下面给出的数据模型从 firebase 获取该数据并将其存储在我的 android 应用程序的 SQlite 数据库中?
public class Expense {
public String id;
public String amount;
public String description;
public Expense() {}
// [START post_to_map]
@Exclude
public Map < String, Object > toMap() {
HashMap < String, Object > result = new HashMap < > ();
result.put("id", id);
result.put("amount", amount);
result.put("description", description);
return result;
}
// [END post_to_map]
public Expense(String id, String amount, String description) {
this.id = id;
this.amount = amount;
this.description = description;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getAmount() {
return amount;
}
public void setAmount(String amount) {
this.amount = amount;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
这是我用来将数据添加到 SQLITE 数据库的 function
public boolean addExpense(Expense expense) {
ContentValues contentValues = new ContentValues();
contentValues.put("expense_id", expense.getId());
contentValues.put("expense_amount", expense.getAmount());
contentValues.put("expense_description", expense.getDescription());
SQLiteDatabase db = getWritableDatabase();
db.insert(DBHelper.expenses_table, null, contentValues);
return true;
}
如何将实时数据库中的数据保存到 SQLite 数据库?
你可能会看看这个answer.It's Related save List to sqlite
要么
要将数据从 firebase 实时数据库保存到 sql 数据库,您应该将 ValueEventListener 添加到您存储费用数据的 DatabaseReference 并循环遍历每个费用数据并将其传输到 addExpense() function。
检查此示例
您的费用数据模型:
public class Expense {
public String id;
public String amount;
public String description;
public Expense() {
}
// [START post_to_map]
@Exclude
public Map<String, Object> toMap() {
HashMap<String, Object> result = new HashMap<>();
result.put("id", id);
result.put("amount", amount);
result.put("description", description);
return result;
}
// [END post_to_map]
public Expense(String id, String amount, String description) {
this.id = id;
this.amount = amount;
this.description = description;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getAmount() {
return amount;
}
public void setAmount(String amount) {
this.amount = amount;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
在这里,您试图从 firebase 中收集费用清单,那么您可能需要使用此方法:
final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference ref = database.getReference("path_to_your_expenses_reference");
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot expensedata: dataSnapshot.getChildren()) {
Expense expense = expensedata.getValue(Expense.class);
addExpense(expense);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("The read failed: " + databaseError.getCode());
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.