Flutter实战一Flutter聊天应用(七)
使用Firebase控制台的分析(Analytics)功能可以帮助我们了解用户是如何使用Flutter应用程序。我们将启用捕获预定义的事件,调整应用程序以收集登录事件和发送消息的指标。数据捕获后,我们将通过Firebase控制台在仪表板中查看。 要使用Firebase Analytics收集用户的数据,我们需要 import 'package:firebase_analytics/firebase_analytics.dart';
现在添加一个名为 final analytics = new FirebaseAnalytics();
接下来,我们可以在应用程序中记录一些事件,以便稍后跟踪和分析。对于这个项目,我们将跟踪用户使用其Google帐户登录的次数。我们将通过在 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();
}
}
//...
}
调用 我们还可以跟踪应用程序中用户发送的消息数量,作为使用和受欢迎程度的度量标准。用户安装我们的应用程序后,重要的是要知道他们是否觉得它很有用和有吸引力。我们将通过在 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定义的 现在当用户登录应用程序或发送消息时,事件将记录在Firebase实时数据库中。在Firebase控制台中,选择“Analytics > 事件”查看仪表板。 在事件列表中,我们将看到刚刚添加的 Firebase认证允许我们要求应用程序的用户拥有Google帐户。当用户登录时,Firebase身份验证将验证Google登录中的凭据,并返回应用程序的响应。登录和验证的用户可以连接到Firebase实时数据库,并与其他用户交流聊天消息。我们可以应用身份验证,以确保用户只能看到他们可以访问的消息。 要使用Firebase认证来验证应用程序的用户,我们需要使用 import 'package:firebase_auth/firebase_auth.dart';
现在添加一个名为 final auth = FirebaseAuth.instance;
将Google登录连接到Firebase,要求仅登录的Google用户可以更改数据库,需要在 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,);
}
}
//...
}
检查 我们现在可以在Firebase控制台的Authentication中看到自己的帐户信息。现在,我们可以要求用户使用Google帐户登录,然后才能发送消息。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |