Firebase Android - 写入数据库

时间:2017-04-08 16:04:24

标签: java android firebase firebase-realtime-database

我正在尝试为我的Android应用创建一个类似下面的数据库:

enter image description here

每次新用户注册时,我想创建一个具有唯一ID的新节点。唯一ID来自电子邮件注册 - 而不是Firebase生成的ID。我知道如何获得该ID。

3 个答案:

答案 0 :(得分:0)

创建与Firebase

的连接

设置Firebase个应用后,转到Xcode并打开GroceryListTableViewController.swift。在定义属性的位置,添加以下内容:

let ref = FIRDatabase.database().reference(withPath: "grocery-items")

这将使用提供的路径建立与Firebase数据库的连接。在文档中,这些Firebase属性称为引用,因为它们引用Firebase数据库中的位置。

简而言之,此属性允许将数据保存和同步到给定位置。

您会注意到未使用基本网址。相反,它使用杂货项目的子路径。 Firebase数据库是JSON NoSQL数据库,因此所有数据都存储为JSON

JSON是一个分层键值数据结构 - 键指的是可以包含指向其他对象的值的对象。 JSON数据只是一个键值对树。

使用Firebase,键是一个URL,值是任意数据,可以是数字,字符串,布尔值或对象。

答案 1 :(得分:0)

您可以使用以下代码来满足您的要求:

private DatabaseReference mDatabase;
mDatabase = FirebaseDatabase.getInstance().getReference();
UserData userData = new UserData();
Map<String, Object> postValues = userData.toMap();
childUpdates.put("/Users/" + UniqueId, postValues);
mDatabase.updateChildren(childUpdates);

这里, userData 是一个模型类:

 public class UserData {

public String getLat() {
    return Lat;
}

public void setLat(String Lat) {
    this.Lat= Lat;
}


  public String getLng() {
    return Lng;
}

public void setLng(String Lng) {
    this.Lng= Lng;
}
public String Lat;

public String Lng;

public UserData (String Lat, String Lng) {
    this.Lng= Lng;
    this.Lat= Lat;
}

@Exclude
public Map<String, Object> toMap() {
    HashMap<String, Object> result = new HashMap<>();
    result.put("Lat", Lat);
    result.put("Lng", Lng);
    return result;
}

}

希望,这有帮助。

答案 2 :(得分:0)

BHelper db =new DBHelper();// your dbHelper
 ContentValues values = new ContentValues();
 values.put("firstName","Ahmad");
 values.put("lastName","Aghazadeh");
 long insertedId= db.getSQLiteDatabase().insert("user", "", values) ;


String sql = "INSERT INTO [user](firstName,lastName) VALUES (\"Ahmad\",\"Aghazadeh\"); select last_insert_rowid()";
 DBHelper itemType =new DBHelper();// your dbHelper`enter code here`
 c = db.rawQuery(sql, null);
 if (c.moveToFirst())
    result = c.getLong(0);