获取 parent 个 DataSnapShot
Get parent of DataSnapShot
我有一个代码可以获取 child 的节点,结果是这样的
{YAlthobiti: {firstName: yara, lastName: A, password: 12345, gender: true, DoB: 1/1/2000, email: yara@gmail.com}}
所以我需要让 parent (YAlthobiti) 对其执行功能我该怎么做?
这是我的代码
static Future<String> getUserEmotivID(String email) async{
String EmotivID = "";
await _ref.child('Users')
.orderByChild("email")
.equalTo(email)
.once()
.then((DataSnapshot dataSnapshot) {
EmotivID = dataSnapshot.value.toString();
print(EmotivID);
return EmotivID;
}).catchError((error, stackTrace) {
print("inner: $error");
print("Dose not Exist");
});
return "";
}
我找了很多都没找到
我猜你需要那个节点的密钥。
您可以在 DataSnapshot 上使用属性 key
,如记录 here.
因此您的代码将如下所示:
.then((DataSnapshot dataSnapshot) {
EmotivID = dataSnapshot.key;
print(EmotivID);
return EmotivID;
})
当您对 Firebase 数据库执行查询时,可能会有多个结果。所以快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。
您的代码需要通过遍历 dataSnapshot.value.values
来处理此列表
我有一个代码可以获取 child 的节点,结果是这样的
{YAlthobiti: {firstName: yara, lastName: A, password: 12345, gender: true, DoB: 1/1/2000, email: yara@gmail.com}}
所以我需要让 parent (YAlthobiti) 对其执行功能我该怎么做?
这是我的代码
static Future<String> getUserEmotivID(String email) async{
String EmotivID = "";
await _ref.child('Users')
.orderByChild("email")
.equalTo(email)
.once()
.then((DataSnapshot dataSnapshot) {
EmotivID = dataSnapshot.value.toString();
print(EmotivID);
return EmotivID;
}).catchError((error, stackTrace) {
print("inner: $error");
print("Dose not Exist");
});
return "";
}
我找了很多都没找到
我猜你需要那个节点的密钥。
您可以在 DataSnapshot 上使用属性 key
,如记录 here.
因此您的代码将如下所示:
.then((DataSnapshot dataSnapshot) {
EmotivID = dataSnapshot.key;
print(EmotivID);
return EmotivID;
})
当您对 Firebase 数据库执行查询时,可能会有多个结果。所以快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。
您的代码需要通过遍历 dataSnapshot.value.values