Firebase 身份验证错误:未定义名称“身份验证”

Posted

技术标签:

【中文标题】Firebase 身份验证错误:未定义名称“身份验证”【英文标题】:Firebase authentication error: Undefined name 'auth' 【发布时间】:2019-07-10 11:08:20 【问题描述】:

我想通过使用每个用户的 UID 来访问我的 Firestore 数据库,如下所示:

return new StreamBuilder(
    stream: Firestore.instance.collection('users').document(uid).snapshots(),
    builder: (context, snapshot) 
      if (!snapshot.hasData) 
        return new Text("Loading");
      
      var userDocument = snapshot.data;

对于获取 UID:

final FirebaseUser user = auth.currentUser().then((FirebaseUser user) 
  final userid = user.uid;
);

这个但我一直收到错误

Undefined name 'auth'.

【问题讨论】:

你初始化auth变量了吗? @George 如何做到这一点? 查看我的回答,希望对您有所帮助。 另外,我更改了您的答案的标题以添加错误而不是您想要实现的内容,这应该可以让其他人在未来更容易找到它。如果您不同意,请随时恢复编辑。 【参考方案1】:

要在 Flutter 中使用 FirebaseAuth,您必须获得对此类实例的引用。每当您需要使用 Firebase 身份验证时,请将此行添加到您的小部件/文件的顶部:

import 'package:firebase_auth/firebase_auth.dart';

FirebaseAuth auth = FirebaseAuth.instance;

现在您可以使用 auth.currentUser().then(...) 之类的东西,就像您做得正确一样。

【讨论】:

以上是关于Firebase 身份验证错误:未定义名称“身份验证”的主要内容,如果未能解决你的问题,请参考以下文章

Django 身份验证模型错误:未定义名称“用户”

身份验证错误后的 Firebase 用户数据

Spring Security Active Directory LDAP 身份验证错误

例外 !!消息:此应用未授权使用 Firebase 身份验证

Laravel 5.3 + Passport:总是未经身份验证的错误

Azure 应用服务:自定义身份验证和社交提供程序