Firebase Analytics logEvent 异步运行

问题描述 投票:0回答:1

我正在我的网络应用程序中实施 Firebase 分析。所以我用

export function LogAnalyticsEvent(
  eventName: string,
  eventParams?: {
    page_title?: string;
    page_location?: string;
    page_path?: string;
    [key: string]: any;
  }
) {
  const analytics = getFirebaseAnalytics();
  logEvent(analytics, eventName, eventParams);
}

它非常适合页面浏览量等。但我正在实现一个重定向页面,例如“您正在离开此网站”,每当用户被重定向时,我想记录一个对重定向进行计数的事件:

 const [redirecting, setRedirecting] = useState(false);
 const handleRedirect = async () => {
    setRedirecting(true);
    if (url) {
      try {
        const targetUrl = new URL(url); // Revalidate URL before redirectx
        // Log the redirect event
        LogAnalyticsEvent("redirect_to_url", {
          url: targetUrl.href,
          domain: targetUrl.hostname,
        });
        window.location.assign(targetUrl.href);
        setRedirecting(false);
      } catch (e) {
        console.error("Error:", e);
        setRedirecting(false);
      }
    }
  }; 

当用户重定向时,不会记录该事件,因为没有足够的时间来完成请求。我尝试使用

setTimeout
但在某些情况下不起作用,比如网速慢。有没有办法让我使用异步 logEvent?或者有什么办法可以解决这个问题?

typescript firebase next.js firebase-analytics
1个回答
0
投票

我有办法使用异步日志事件吗?

不。 所有 Firebase API 在所有客户端平台上都是异步的。 任何其他行为都可能导致网站无限期地锁定浏览器,这是一种糟糕的用户体验。

如果您想在重定向的同时记录某些内容,那么唯一可行的选择是在重定向后在页面上执行日志,也许在本地存储或传递一些状态以便稍后处理。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.