Flutter   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Flutter实战一Flutter聊天应用(七)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

使用Firebase控制台的分析(Analytics)功能可以帮助我们了解用户是如何使用Flutter应用程序。我们将启用捕获预定义的事件,调整应用程序以收集登录事件和发送消息的指标。数据捕获后,我们将通过Firebase控制台在仪表板中查看。@H_772_5@

要使用Firebase Analytics收集用户的数据,我们需要firebase_analytics插件。在@H_503_7@main.dart文件中,确保导入相应的包。@H_772_5@

import 'package:firebase_analytics/firebase_analytics.dart';

现在添加一个名为analytics的私有成员变量,使用一个新的FirebaseAnalytics实例初始化它,我们可以通过此变量进行访问。将以下代码添加到@H_503_7@main.dart中。@H_772_5@

final analytics = new FirebaseAnalytics();

接下来,我们可以在应用程序中记录一些事件,以便稍后跟踪和分析。对于这个项目,我们将跟踪用户使用其Google帐户登录次数。我们将通过在ChatScreenState中的私有_ensureLoggedIn()方法中记录登录事件来进行此操作,当用户发送聊天消息时,该事件被调用。@H_772_5@

class ChatScreenState extends State<ChatScreen> with TickerProviderStatemixin {
  //...
  Future<Null> _ensureLoggedIn() async {
    GoogleSignInAccount user = googleSignIn.currentUser;
    if (user == null)
      user = await googleSignIn.signInSilently();
    if (user == null) {
      await googleSignIn.signIn();
      analytics.logLogin();
    }
  }
  //...
}

调用logLogin()方法,该方法由应用程序中包含的Flutter Firebase Analytics插件定义。此方法不带参数,记录名为login的Firebase Analytics事件。@H_772_5@

我们还可以跟踪应用程序中用户发送的消息数量,作为使用和受欢迎程度的度量标准。用户安装@R_164_9616@程序后,重要的是要知道他们是否觉得它很有用和有吸引力。我们将通过在ChatScreenState中的私有_sendmessage()方法中记录发送的消息事件来执行此操作。@H_772_5@

class ChatScreenState extends State<ChatScreen> with TickerProviderStatemixin {
  //...
  void _sendmessage({ String text }) {
    Chatmessage message = new Chatmessage(
      text: text,animationController: new AnimationController(
        duration: new Duration(milliseconds: 300),vsync: this
      )
    );
    setState((){
      _messages.insert(0,messagE);
    });
    message.animationController.forWARD();
    analytics.logEvent(name: 'send_message');
  }
  //...
}

调用由Firebase Analytics API定义的logEvent()方法,访问此API由Flutter Firebase Analytics插件提供,该插件是我们之前导入的。logEvent()方法记录了名为send_message的Firebase Analytics事件。@H_772_5@

现在当用户登录应用程序或发送消息时,事件将记录在Firebase实时数据库中。在Firebase控制台中,选择“Analytics > 事件”查看仪表板。@H_772_5@

Flutter实战一Flutter聊天应用(七)@H_772_5@@H_772_5@@H_772_5@

在事件列表中,我们将看到刚刚添加loginsend_message事件以及认的first_openscreen_viewsession_start事件。我们登录到Firebase Analytics的任何事件将被汇总、匿名化,并在24小时内在Firebase控制台中报告。要立即查看事件,可以启用调试模式。@H_772_5@

Firebase认证允许我们要求应用程序的用户拥有Google帐户。当用户登录时,Firebase身份验证将验证Google登录中的凭据,并返回应用程序的响应。登录和验证的用户可以连接到Firebase实时数据库,并与其他用户交流聊天消息。我们可以应用身份验证,以确保用户只能看到他们可以访问的消息。@H_772_5@

要使用Firebase认证来验证应用程序的用户,我们需要使用firebase_auth插件。在我们的@H_503_7@main.dart文件中,确保导入相应的包。@H_772_5@

import 'package:firebase_auth/firebase_auth.dart';

现在添加一个名为auth的私有成员变量,使用一个新的FirebaseAuth实例初始化它,我们可以通过此变量进行访问。将以下代码添加到@H_503_7@main.dart中。@H_772_5@

final auth = FirebaseAuth.instance;

将Google登录连接到Firebase,要求仅登录的Google用户可以更改数据库,需要在ChatScreenState中的_ensureLoggedIn()方法添加验证逻辑,如下面代码所示。@H_772_5@

class ChatScreenState extends State<ChatScreen> with TickerProviderStatemixin {
  //...
  Future<Null> _ensureLoggedIn() async {
    GoogleSignInAccount user = googleSignIn.currentUser;
    if (user == null)
      user = await googleSignIn.signInSilently();
    if (user == null) {
      await googleSignIn.signIn();
      analytics.logLogin();
    }
    if (auth.currentUser == null) {
      GoogleSignInAuthentication credentials = await googleSignIn.currentUser.authentication;
      await auth.signInWithGoogle(
        idToken: credentials.idToken,accessToken: credentials.accessToken,);
    }
  }
  //...
}

检查currentUser是否设置为nullauthentication属性用户的凭据。signInWithGoogle()方法idTokenaccessToken作为参数。此方法由我们之前导入的Flutter Firebase Authentication插件提供。它返回一个名为currentUser的新的Firebase用户对象。@H_772_5@

Flutter实战一Flutter聊天应用(七)@H_772_5@@H_772_5@@H_772_5@

我们现在可以在Firebase控制台的Authentication中看到自己的帐户信息。现在,我们可以要求用户使用Google帐户登录,然后才能发送消息。@H_772_5@

大佬总结

以上是大佬教程为你收集整理的Flutter实战一Flutter聊天应用(七)全部内容,希望文章能够帮你解决Flutter实战一Flutter聊天应用(七)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。