【问题标题】:How to call a function from another file in Flutter?如何从 Flutter 中的另一个文件调用函数?
【发布时间】:2020-05-29 15:06:26
【问题描述】:

我是 dart 新手,我试图在我的登录页面中从我的 auth.dart 文件中调用一个函数,我尝试了很多解决方案,但都没有成功,所以有什么新想法吗? 这是我的授权文件:

abstract class BaseAuth{
  Future<FirebaseUser> currentUser();
  Future<String> signIn(String email, String password);
  Future<String> createUser(String email, String password);
  Future<void> signOut();
  Future<String> getEmail();
  Future<bool> isEmailVerified();
  Future<void> resetPassword(String email);
  Future<void> sendEmailVerification();
}
class Auth implements BaseAuth{
  final FirebaseAuth _firebaseAuth = FirebaseAuth.instance;
  Future<String> signIn(String email, String password) async {
    FirebaseUser user = (await _firebaseAuth.signInWithEmailAndPassword(email: email, password: password)) as FirebaseUser;
    return user.uid;
  }
  Future<String> createUser(String email, String password) async {
    FirebaseUser user = (await _firebaseAuth.createUserWithEmailAndPassword(email: email, password: password)) as FirebaseUser;
    return user.uid;
  }
  Future<FirebaseUser> currentUser() async {
    FirebaseUser user = await _firebaseAuth.currentUser();
    print("uid ${user.uid}");
    return user;
  }
  Future<String> getEmail() async{
    FirebaseUser user = await _firebaseAuth.currentUser();
    return user.email;
  }
  Future<void> signOut() async {
    return _firebaseAuth.signOut();
  }
  Future<bool> isEmailVerified() async{
    FirebaseUser user = await _firebaseAuth.currentUser();
    return user.isEmailVerified;
  }
  Future<void> resetPassword(String email) async{
    return _firebaseAuth.sendPasswordResetEmail(email: email);
  }
  Future<void> sendEmailVerification() async{
    FirebaseUser user = await _firebaseAuth.currentUser();
    return user.sendEmailVerification();
  }
}

【问题讨论】:

  • 使用 Provider 包。

标签: function flutter


【解决方案1】:

首先您需要导入文件。在文件的最顶部执行此操作。您需要提供从当前文件位置到文件的路径。因此,如果当前文件在 /lib 中,而新文件在 /lib/widgets 中,则您的路径是“widgets/new.dart”。你可以去一个像这样的文件夹“../new.dart”

import 'new.dart';

然后实例化您的类的一个对象并使用该对象来调用函数。

New x = New();
x.getFromOtherFile();

在这个例子中,“New”是我的类名。

【讨论】:

  • 什么是“新”??
  • 新是我的班级名称。在您的情况下,它将是“Auth”
  • 但不在您的导入中。那里使用实际的文件名。
  • 谢谢,但我还有一个问题,你能帮我吗?
  • @OmarYacop 当然,这是什么
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-11
  • 1970-01-01
  • 2020-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多