簡體   English   中英

如何從 Firebase 實時數據庫中檢索數據到 mySqlite?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM