firebase - 为什么 screen_view 没有显示 firebase_screen?
问题描述
大家早上好,希望我能得到一些帮助。
在实时、事件、趋势中,我可以找到一个带有屏幕名称的自定义参数,但它们不会出现在 screen_view 中。所以在事件中,screen_view 表是全部(未设置)。
应用程序.js:
import React from "react";
import { AppState, NativeModules } from "react-native";
import { Provider } from "react-redux";
import LoginContainer from "./src/components/login/LoginContainer";
import { createSwitchNavigator, createStackNavigator } from "react-navigation";
import CommonAppStack from "./src/navigation/opciones_menu/commonStacks";
import AuthLoadingScreen from "./src/screens/AuthLoadingScreen";
import configureStore from "./src/configureStore";
import {
HomeSegurosDrawer,
HomeSegurosDrawerSinConsultas,
} from "./src/navigation/menu_drawers/HomeSegurosDrawer";
import NavigationService from "./src/services/NavigationService";
import SeleccionarUnidadContainer from "./src/components/seleccion_unidad/SeleccionarUnidadContainer";
import SeleccionSeguroContainer from "./src/components/seleccion_seguro/SeleccionSeguroContainer";
import TelefonosUtilesPublicoContainer from "./src/screens/telefonos_utiles_publico/TelefonosUtilesPublicoContainer";
import SplashScreen from "react-native-splash-screen";
import { PersistGate } from "redux-persist/integration/react";
import Analytics from "@react-native-firebase/analytics";
const seleccionarUnidadProductorStack = createStackNavigator(
{
UnidadSelectScreen: {
screen: SeleccionarUnidadContainer,
},
SeleccionSeguro: SeleccionSeguroContainer,
},
{
navigationOptions: {
initialRouteName: "UnidadSelectScreen",
},
}
);
const AppStack = createStackNavigator(
{
UnidadYProductorStackNav: seleccionarUnidadProductorStack,
homeSegurosDrawer: HomeSegurosDrawer,
homeSegurosDrawerSinConsultas: HomeSegurosDrawerSinConsultas,
CommonAppStack,
},
{
initialRouteName: "UnidadYProductorStackNav",
headerMode: "none",
}
);
const AuthStack = createStackNavigator(
{
SignIn: {
screen: LoginContainer,
},
TelefonosUtilesPublico: TelefonosUtilesPublicoContainer,
},
{
navigationOptions: {
initialRouteName: "SignIn",
},
}
);
const RootStack = createSwitchNavigator(
{
AuthLoading: AuthLoadingScreen,
AppStack: AppStack,
AuthStack: AuthStack,
},
{
initialRouteName: "AuthLoading",
}
);
export const { store, persistor } = configureStore();
export default class App extends React.Component {
constructor(props) {
super();
this.state = {
isReady: false,
fontLoaded: false,
appState: AppState.currentState,
};
}
componentDidMount() {
SplashScreen.hide();
AppState.addEventListener("change", this._handleAppStateChange);
}
componentWillUnmount() {
AppState.removeEventListener("change", this._handleAppStateChange);
}
_handleAppStateChange = async (nextAppState) => {
if (
this.state.appState.match(/inactive|background/) &&
nextAppState === "active"
) {
console.log("App has come to the foreground!");
}
this.setState({ appState: nextAppState });
};
getActiveRouteName(navigationState) {
if (!navigationState) {
return null;
}
const route = navigationState.routes[navigationState.index];
// Dive into nested navigators
if (route.routes) {
return this.getActiveRouteName(route);
}
return route.routeName;
}
render() {
return (
<Provider store={store}>
<PersistGate loading={null} persistor={persistor}>
<RootStack
ref={(navigatorRef) => {
NavigationService.setTopLevelNavigator(navigatorRef);
}}
onNavigationStateChange={async (prevState, currentState) => {
const currentScreen = this.getActiveRouteName(currentState);
const prevScreen = this.getActiveRouteName(prevState);
if (prevScreen !== currentScreen) {
await Analytics().setCurrentScreen(currentScreen);
}
}}
></RootStack>
</PersistGate>
</Provider>
);
}
}
导航服务.js:
import { NavigationActions, StackActions } from 'react-navigation';
import { DrawerActions } from 'react-navigation';
import Analytics from '@react-native-firebase/analytics';
let _navigator;
function setTopLevelNavigator(navigatorRef) {
_navigator = navigatorRef;
}
function navigate(routeName, params) {
+ Analytics().logEvent('custom_view', {screen: routeName});
_navigator.dispatch(
NavigationActions.navigate({
routeName,
params,
})
);
}
function navigateAndReset(routeName, params) {
+ Analytics().logEvent('custom_view', {screen: routeName});
_navigator.dispatch(
NavigationActions.navigate({
routeName,
params,
action: StackActions.reset({
index: 0,
actions: [
NavigationActions.navigate({
routeName,
params
})
]
})
})
);
}
function openDrawer() {
_navigator.dispatch(DrawerActions.openDrawer());
}
export default {
navigate,
navigateAndReset,
setTopLevelNavigator,
openDrawer
};
包.json:
"@react-native-firebase/analytics": "^11.2.0",
"@react-native-firebase/app": "^11.2.0",
"react-native": "0.61.5",
"react-navigation": "^2.9.3",
我有另一个应用程序运行相同的 firebase 分析代码及其工作,我不知道可能是什么问题。预先感谢您的帮助!
解决方案
推荐阅读
- tsql - 我需要一种在 T-SQL 上使用 ROW_NUMBER 无法计算的组排序
- javascript - Vue.js 在组件之间传递数据
- css - CSS -webkit-mask-position 只响应一个动画
- ios - 如何检查用于编译框架的 ios SDK 版本
- php - 如何在 php mysql 中不获取重复数据
- vue.js - do...while 循环中出现不可理解的意外令牌错误
- java - WebRTC + Android + 远程视频不显示
- java - 如何修改我的代码以使用前置摄像头扫描二维码
- javascript - 在 Knockout-bound 下拉列表中显示值而不是文本
- python - knn.score的参数说明