我想基于Firebase Auth中的用户ID显示所有(嵌套的)Firebase Realtime数据库数据。我使用Flutter Android。
我的数据库是这样的:
我的代码大概是这样的:
home.dart
class Todo {
int datetime;
double current;
double voltage;
String key;
bool status;
String userId;
Todo(this.datetime, this.userId, this.status, this.current, this.voltage);
Todo.fromSnapshot(DataSnapshot snapshot)
: key = snapshot.key,
status = snapshot.value["status"],
datetime = snapshot.value["datetime"],
current = snapshot.value["current"],
voltage = snapshot.value["voltage"];
toJson() {
return {
"status": status,
"datetime": datetime,
"current": current,
"voltage": voltage,
};
}
}
和我的模型课:
todo.dart
var request = require('request');
var cheerio = require('cheerio');
var searchTerm = 'baloncesto';
var url = 'http://mismarcadores.com/' + searchTerm;
request(url , function(err,resp,body){
$ = cheerio.load(body)
var allLinks = []
links = $('a');
$(links).each(function(i,link){
console.log(url+$(link).attr('href'))
var currentLink = url+$(link).attr('href')
allLinks.push(currentLink)
if (i == links.length-1){
useLinks(allLinks)
}
}
)
})
function useLinks(allLinks){
console.log(allLinks)
}
我已经做到了。
但是,如果我将数据库更改为这样的东西(添加嵌套子项),该怎么办:
如何从用户ID Firebase身份验证获取所有子数据?
预先感谢
答案 0 :(得分:1)
在构造数据库时,需要考虑到它必须是平面结构。如果将结构更改为第二张图像,则可以执行以下操作:
final FirebaseDatabase _database = FirebaseDatabase.instance;
User currentUser = FirebaseAuth.instance.currentUser;
var ref = _database.reference().child(currentUser.uid);
ref.once().then((DataSnapshot snapshot){
print(snapshot.value);
print(snapshot.key);
snapshot.value.forEach((key,values) {
print(values);
});
});
这里首先获取数据库的实例并获取当前登录的用户,然后使用once()
来获取数据,以便能够访问嵌套的字段,然后必须使用{{1} }在forEach()
内部进行迭代。