我正在尝试为我的Android应用创建一个类似下面的数据库:
每次新用户注册时,我想创建一个具有唯一ID的新节点。唯一ID来自电子邮件注册 - 而不是Firebase生成的ID。我知道如何获得该ID。
答案 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);