【发布时间】:2020-10-22 16:23:05
【问题描述】:
您好,我已经查看了以前对类似问题的回答(例如 here),但它们并没有解决我的问题。
我有一个应用程序,其中用户记录和音频 sn-p 然后上传到 firebase 存储。一切正常,但目前没有文件夹结构(因此所有用户文件都将保存到同一顶层)。因此,我试图调用一个用户 uid 来创建一个唯一的用户文件夹。由于用户还首先登录到 Firestore DB,因此我有一个指定的 user.uid
我有调用当前用户的方法
Future getCurrentUser() async {
final FirebaseUser user = await _auth.currentUser(); # _auth is instance of FirebaseAuth
return user;
如果我将它附加到按钮的 onPressed 事件中,我会得到以下信息
flutter: user Information is
flutter: D3sR4sKXXXXYToYQrmkkxmBNGvWq1
但是,如果我在“停止”录制函数中调用相同的函数,我会得到不同的结果。
Stop recording () async {
// some audio commands....
var folder = _auth.getCurrentUser().toString();
print('Folder name is: ' + folder);
这给了我
flutter: folder name is: Instance of 'Future<dynamic>'
我不知道这是否相关,但我注意到与一些较旧的在线教程相比,firestore 响应存在一些差异。例如,如果我按照其他 StackOverflow 示例(例如 here )中的建议将当前用户方法更改为
Future getCurrentUser() async {
final FirebaseUser user = await _auth.currentUser();
return user.uid;
无论是在代码中调用还是通过 onPressed(尽管命令完成),我都会收到以下异常,
flutter: user Information is
[VERBOSE-2:ui_dart_state.cc(157)] Unhandled Exception: NoSuchMethodError: Class 'String' has no instance getter 'uid'.
Receiver: "D3sR4sKXXXXYToYQrmkkxmBNGvWq1"
当直接从用户初始 Firestore 登录的响应中调用 user.uid 时,我没有收到此消息。
【问题讨论】:
标签: firebase flutter dart google-cloud-firestore