我正在Flutter中处理Firebase实时数据库。我正在将用户信息及其相应的数据存储在数据库中。我的代码如下:
//User Auth Class
class UserAuth{
final String id;
final String email;
final String token;
UserAuth({@required this.id, @required this.email, @required this.token});
}
//User Details Class for storing data of corresponding user
class UserDetails{
final String userDetailsId;
final String name;
final String email;
UserDetails({@required this.userDetailsId,@required this.name, @required this.email});
}
//I am using this code to add userDetails in database.
List<UserDetails> _detailsList = [];
UserDetails _details;
Future<bool> addUserDetails(String username, String email) async {
_isLoading = true;
notifyListeners();
final Map<String, dynamic> userDetails = {
'username': username,
'email': email,
};
try {
final http.Response response = await http.post(
'https://intro-to-firebase-711d4.firebaseio.com/Users.json',
body: json.encode(userDetails));
if (response.statusCode != 200 && response.statusCode != 201) {
_isLoading = false;
notifyListeners();
return false;
}
final Map<String, dynamic> responseData = json.decode(response.body);
_details = UserDetails(
userDetailsId: responseData['name'], name: username, email: email);
_detailsList.add(_details);
_isLoading = false;
notifyListeners();
return true;
} catch (error) {
_isLoading = false;
notifyListeners();
return false;
}
}
现在,我想获取用户的以下突出显示的ID,以及如何获取它。我正在使用范围模型作为Flutter中的状态管理。
答案 0 :(得分:0)
到目前为止,我已经使用javascript做到了,但在文档中似乎没有什么不同:
private void writeNewUser(String userId, String name, String email) {
User user = new User(name, email);
mDatabase.child("users").child(userId).setValue(user);
}
https://firebase.google.com/docs/database/android/read-and-write?authuser=0
这是文档中显示的示例。使用.child('users')
,您可以获得正确的部分.child(userId)
,使您可以访问值。
您现在所要做的就是定义变量userId
颤抖
您可以实现以下目标
stream: FirebaseDatabase.instance
.reference()
.child('users')
.equalTo(userId)
.onValue,