NullInjectorError:AngularFireAnalytics没有提供者!角度8

时间:2020-01-16 18:18:02

标签: angular firebase webpack firebase-analytics

运行“ npm测试”时,出现此错误:

NullInjectorError:StaticInjectorError(DynamicTestModule)[ComparePageComponent-> AngularFireAnalytics]: StaticInjectorError(平台:核心)[ComparePageComponent-> AngularFireAnalytics]: NullInjectorError:AngularFireAnalytics没有提供者! 错误属性:Object({ngTempTokenPath:null,ngTokenPath:['ComparePageComponent',Function]})

app.module.ts

 def load_into_csv(years):
    list_dd = []
    for year in years:
        for buckett in s3.buckets.all():
            for aobj in buckett.objects.filter(Bucket=bucket,Prefix=PREFIX):
                if year in aobj.key:
                    f= "'{}', ".format(buckett.name)
                    ff= "'{}', ".format(aobj.key)
                    # Store into a list the bucket_name and the path.
                    list_dd.append( [f, ff] )

    # Create the dataframe with the list previusly generated.
    df = pd.DataFrame(list_dd, columns = ['bucket_name', 'key_s3_path'])
    export_csv = df.to_csv (r'my/path/0177_s3_files_v2.csv', index = None, header=True)

firebase.service.ts

        var userId = userOrChannelId.Trim();
        var botId = context.Activity.Recipient.Id;
        var botName = context.Activity.Recipient.Name;

        var channelData = context.Activity.GetChannelData<TeamsChannelData>();
        var connectorClient = new ConnectorClient(new Uri(context.Activity.ServiceUrl));
        var parameters = new ConversationParameters
        {
            Bot = new ChannelAccount(botId, botName),
            Members = !isChannelMessage ? new ChannelAccount[] { new ChannelAccount(userId) } : null,
            ChannelData = new TeamsChannelData
            {
                Tenant = channelData.Tenant,
                Channel = isChannelMessage ? new ChannelInfo(userId) : null,
                Notification = new NotificationInfo() { Alert = true }
            },
            IsGroup = isChannelMessage
        };


            var conversationResource = await connectorClient.Conversations.CreateConversationAsync(parameters);
            var replyMessage = Activity.CreateMessageActivity();
            replyMessage.From = new ChannelAccount(botId, botName);
            replyMessage.Conversation = new ConversationAccount(id: conversationResource.Id.ToString());
            replyMessage.ChannelData = new TeamsChannelData() { Notification = new NotificationInfo(true) };
            replyMessage.Text = messageText;
            if (attachment != null)
                replyMessage.Attachments.Add(attachment);

                var resourceResponse = await connectorClient.Conversations.SendToConversationAsync(conversationResource.Id, (Activity)replyMessage);

compare-page.component.ts

import {AngularFireModule} from "@angular/fire";
import {AngularFireAnalyticsModule, AngularFireAnalytics} from "@angular/fire/analytics";

@NgModule({
   imports: [
   .....
       AngularFireModule.initializeApp(environment.firebase),
       AngularFireAnalyticsModule,
   ],
   providers: [
      AngularFireAnalytics,
      ...fromServices.services,
   ],

您是否知道缺少什么?

我使用了本教程:https://www.positronx.io/firebase-authentication-in-angular-8-with-angularfire2/

1 个答案:

答案 0 :(得分:1)

没有名为AngularFireAnalytics的提供程序。因此,您需要将providers数组更改为以下内容:

  providers: [
      ...fromServices.services,
   ],

然后使用Firebase分析在组件中执行以下操作:

import { AngularFireAnalytics } from '@angular/fire/analytics';

constructor(analytics: AngularFireAnalytics) {
  analytics.logEvent('custom_event', { ... });
}

在这里检查:

https://github.com/angular/angularfire/blob/master/docs/analytics/getting-started.md