Flutter 如何使用带颤振的堆垛机

Flutter 如何使用带颤振的堆垛机,flutter,dart,stackdriver,Flutter,Dart,Stackdriver,我正在开发一个颤振应用程序。是否有任何方法可以将数据直接从颤振/飞镖写入StackDriver。您可以使用: 例如: import 'package:googleapis/logging/v2.dart'; import 'package:googleapis_auth/auth.dart'; import 'package:googleapis_auth/auth_io.dart'; final _credentials = new ServiceAccountCredentials.fr

我正在开发一个颤振应用程序。是否有任何方法可以将数据直接从颤振/飞镖写入StackDriver。

您可以使用:

例如:

import 'package:googleapis/logging/v2.dart';
import 'package:googleapis_auth/auth.dart';
import 'package:googleapis_auth/auth_io.dart';

final _credentials = new ServiceAccountCredentials.fromJson(r'''
{
... YOUR CREDENTIALS ....
}
''');

const _SCOPES = const ['https://www.googleapis.com/auth/logging.write'];

clientViaServiceAccount(_credentials, _SCOPES).then((httpClient) {
  var errorReporting = new LoggingApi(httpClient);

  // Resource
  var resource = new MonitoredResource();
  resource.type = 'global';
  resource.labels = {
    'project_id': 'PROJECT_ID',
  };

  // Prepare new log entry.
  LogEntry logEntry = new LogEntry();
  logEntry.logName = "projects/PROJECT_ID/logs/LOG_ID";
  logEntry.jsonPayload = {'message': 'YOUR MESSAGE'};
  logEntry.resource = resource;

  var request = new WriteLogEntriesRequest();
  request.entries = [logEntry];

  errorReporting.entries.write(request).then((_) {
    print('log entry sent');
  });
});

但是,请注意,您需要将您的凭据放在您的flutter应用程序上,而“黑客”可能会窃取它。因此,最好将日志发送到后端,然后将其发送到StackDriver。

为了将日志写入StackDriver,您必须通过Google云平台的身份验证。一般来说,您有两种身份验证选项:

1.用户名密码 使用
google\u-Sign\u-in
登录,这将创建一个客户端,您可以与
googleapis
一起使用,然后再利用可用的不同API

2.服务帐户 读取生成的凭证JSON文件并使用
clientViaServiceAccount
。不支持此方法,因为颤振提供的dart SDK中缺少
dart:html
包,出于安全考虑,最终不应使用此方法。(在构建包中托管凭据文件)


我的最佳建议是在服务器端创建一个用于日志记录的端点,在这里,您可以使用任何身份验证方法使用任何日志库。

您尝试过这个吗?我不能使用
googleapis\u auth
,因为它依赖于
dart:html
是的,我想展示一下如何使用dart/flatter。但是正确的方法应该是创建一个“日志后端”,然后从那里向StackDriver发送内容。