-2

ユーザーモデル

import 'package:expence_app/models/models.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:json_annotation/json_annotation.dart';



@JsonSerializable()
class UserModel {
  final String? uid;
  final String name;
  final String? email;
  final double? budget;
  final String photoURL;
  final Currency? currency;

  UserModel({
    this.uid,
    required this.name,
    this.email,
    this.budget,
    required this.photoURL,
    this.currency,
  });

 

  factory UserModel.fromFirebaseUser(User user) => UserModel(
        uid: user.uid,
        name: user.displayName,
        email: user.email,
        budget: null,
        photoURL: user.photoURL,
        currency: null,
      );


}

Auth.dart

import 'dart:async';

import 'package:expence_app/models/models.dart';
import 'package:expence_app/services/services.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/foundation.dart';
import 'package:google_sign_in/google_sign_in.dart';

class AuthService {
  final FirebaseAuth _auth = FirebaseAuth.instance;
  User _curentuser = FirebaseAuth.instance.currentUser;
  final GoogleSignIn _googleSignIn = GoogleSignIn(scopes: [
    'https://www.googleapis.com/auth/plus.me',
    'https://www.googleapis.com/auth/userinfo.email',
    'https://www.googleapis.com/auth/userinfo.profile',
  ]);

 User get getUser =>
      _auth.currentUser.then((user) => UserModel.fromFirebaseUser(user));

  Stream<User> get user =>
      _auth.authStateChanges.map((user) => UserModel.fromFirebaseUser(user));

}

ユーザーは getUser => _auth.currentUser.then((user) => UserModel.fromFirebaseUser(user)); を取得します。

メソッド ‘then’ はタイプ ‘User’ に対して定義されていません。 名前を既存のメソッドの名前に修正するか、「then」という名前のメソッドを定義してみてください。

ストリーム get user => _auth.authStateChanges.map((user) => UserModel.fromFirebaseUser(user));

メソッド ‘map’ はタイプ ‘Function’ に対して定義されていません。 名前を既存のメソッドの名前に修正するか、’map’ という名前のメソッドを定義してみてください。

これは、firebase に接続して現在のユーザーを取得し、そのユーザーを取得しようとしたときのエラーです。

新しい寄稿者

アランソ・マシュー は、このサイトの新しい寄稿者です。 説明を求めたり、コメントしたり、答えたりする際には注意してください。 私たちをチェックしてください 行動規範.

    あなたの答え

    アランソ・マシュー 新しい投稿者です。 親切に、そして私たちをチェックしてください 行動規範.

    ゲストとして投稿する

    必須ですが表示されません


    「回答を投稿する」をクリックすることにより、あなたは私たちの 利用規約プライバシーポリシークッキーポリシー

    タグ付けされた他の質問を閲覧する フラッター ファイアーベース ダーツ google-cloud-firestore ファイアベース認証 また 自分の質問をする.