小编Joj*_*rte的帖子

如何确定JEST是否正在运行代码?

我正在我的react-native项目上创建一个JS测试.我特意使用firebase for react native,如果JS运行我的类的代码,我想用mockfirebase实例替换firebase实例.

例如,我有类似下面的类设置.

import firebase from 'react-native-firebase';
class Database() {
    /// use the firebase instance
}
Run Code Online (Sandbox Code Playgroud)

我想检查jest是否是运行环境,然后我用适当的模拟类替换导入行.

javascript mocking firebase jestjs react-native

15
推荐指数
2
解决办法
3896
查看次数

相当于 Firestore 中的 .push ?

我正在尝试将以前使用实时数据库的 firebase 实现转换为使用 firestore,因为我喜欢集合的想法和使用它的好处。

我如何在下面实现 Firestore 等价物?

firebase.database().ref('documentPath').push()
Run Code Online (Sandbox Code Playgroud)

javascript firebase google-cloud-firestore

6
推荐指数
1
解决办法
5245
查看次数

日历iframe不会显示所有最新创建的事件(尤其是共享的日历事件)

我已经设法将Google日历嵌入到React组件中,但是问题是我可以观察到嵌入式日历没有获得最新事件,该事件已添加到通过验证的电子邮件中gapi。

日历iframe网址是这个 https://calendar.google.com/calendar/b/1/embed?src={VALID_CALENDAR_EMAIL}

calendar.util.js

const CALENDAR_EMBED_BASE_URL =
  'https://calendar.google.com/calendar/embed?src=';

export const getCalendarEmbedUrl = email =>
  `${CALENDAR_EMBED_BASE_URL}${email}`;

Run Code Online (Sandbox Code Playgroud)

CalendarIframe.jsx组件

import React, { PureComponent } from 'react';
import { getCalendarEmbedUrl } from 'calendar.util.js';

class CalendarIframe extends PureComponent {
  render() {
    const { email } = this.props;
    const embedUrl = getCalendarEmbedUrl(email);

    return (
      <div className="calendarEmbedWrapper">
        <iframe
          title="Calendar"
          id="calendarEmbed"
          width="100%"
          src={embedUrl}
        />
      </div>
    );
  }
}

Run Code Online (Sandbox Code Playgroud)

如何确保嵌入式日历具有应有的动态性?

javascript iframe google-calendar-api reactjs gapi

5
推荐指数
1
解决办法
79
查看次数

有没有具体的方法来监听PDFDocument或PDFView url加载的完成情况?

我已经实现了一个自定义 PDFView,可以从云端加载 pdf 文件,也可以在本地加载 pdf 文件(如果可用)。对于本地实例,正如预期的那样,所有内容都加载得很快,但是当 url 不是本地的(即来自服务器的)时,可能需要一段时间,我想在 PDFView 加载文件时添加 UIActivityIndi​​cator,有没有办法让我们知道一个代表或一个通知来监听以跟踪这一情况?

我的实现基本上如下所示:

let url = ReportsRepository.shared.getReportUrl(id: "1234")

self.pdfView.document = PDFDocument(url: url)
Run Code Online (Sandbox Code Playgroud)

此后,如果 URL 来自服务器,则应用程序似乎冻结,因此我需要在此处添加 UIActivityIndi​​cator,问题是如何使用 PDFKit 停止它?

pdfkit pdfview ios swift

3
推荐指数
1
解决办法
2263
查看次数

如何确保http Cloud Function调用的并发性一次只有一个

我已经设置了一个 Http Cloud Function 作为预订系统的后端。此函数从 Cloud Firestore 访问数据,检索现有的预订时间并检查预订是否与现有时间重叠。如果只能触发请求的一个并发实例,那么这不会有问题,但是我注意到,当同时从多个源请求同一函数时,该函数将以某种基于并行的方式运行这些多个请求在我的日志上。

下面是我的函数的片段:

exports = module.exports = functions.https.onCall(async (data, context) => {
  const { stand_id, user_id, reservation } = data;
  const isReservationValid = await checkAvailability(reservation, stand_id);

  if (!isReservationValid) {
    throw new functions.https.HttpsError('aborted', 'Errr');
  }

  return await createReservation(stand_id, user_id, reservation);
});
Run Code Online (Sandbox Code Playgroud)

如果我调用这个函数并传入相同的stand_id和重叠的保留时间,就会出现问题,我注意到该函数不会等待第一个被调用的函数完成后再开始后续请求。

有什么办法可以更好地解决这个问题吗?或者有什么解决方法吗?或者我只是误解了下面的文档?: 文档截图

firebase google-cloud-functions google-cloud-firestore

2
推荐指数
1
解决办法
4252
查看次数

在真实 iPhone 上运行调试方案时 Metrobundler 不会重新加载

当在真实的 iPhone 设备而不是模拟器上运行debug方案时,我注意到 Metrobundler 不会被触发加载 JS 更改。

\n\n

我可以摇动设备,然后会弹出重新加载、外部调试等选项。但每当我选择任何选项时,应用程序都会冻结,然后在几秒钟或几分钟后显示以下错误

\n\n
[RCTCxxBridge.mm:1080] Timed out waiting for modules to be invalidated\n
Run Code Online (Sandbox Code Playgroud)\n\n

造成这种情况最可能的原因是什么?我似乎找不到其他人有同样的问题。

\n\n

我的环境:

\n\n
REACT: "16.8.3"\nREACT-NATIVE: "0.59.2"\nNPM: 6.9.0\nNODE: v10.16.0\n\n
Run Code Online (Sandbox Code Playgroud)\n\n

即使在摇晃后尝试执行任何选项后,这也是 Metrobundler 所在的位置。

\n\n
> ReactNativePlatform@0.0.1 start /Users/joselitonarte/Documents/Fun/RN/myapp\n> node node_modules/react-native/local-cli/cli.js start "--reset-cache"\n\n\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82                                                                              \xe2\x94\x82\n\xe2\x94\x82  Running Metro Bundler on port 8081.                                         \xe2\x94\x82\n\xe2\x94\x82                                                                              \xe2\x94\x82\n\xe2\x94\x82  Keep Metro running while developing on any JS projects. Feel free to        \xe2\x94\x82\n\xe2\x94\x82  close this tab and run your own Metro instance if you prefer.               \xe2\x94\x82\n\xe2\x94\x82                                                                              \xe2\x94\x82\n\xe2\x94\x82 …
Run Code Online (Sandbox Code Playgroud)

javascript ios react-native metro-bundler

2
推荐指数
1
解决办法
1084
查看次数