小编Cor*_*ole的帖子

网页中的 Flutter Firebase 实时数据库

我正在尝试让我的 Flutter 应用程序在浏览器中运行,这取决于 firebase_database。没有任何关于如何做到这一点的文档,但我根据 firebase_core 和 firebase_auth 文档做出了一些假设:

我的应用程序在 iOS 和 android 上运行,但我无法让数据库在 flutter web 中运行。

我已经设置了我的 index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Flutter WebRTC Demo</title>
</head>
<body>
    <script src="https://www.gstatic.com/firebasejs/7.6.1/firebase-app.js"></script>
    <script src="https://www.gstatic.com/firebasejs/7.6.1/firebase-database.js"></script>
    <script>
        const firebaseConfig = {
            apiKey: '...',
            authDomain: '...',
            databaseURL: '...',
            projectId: '...',
            storageBucket: '...',
            messagingSenderId: '...',
            appId: '...'
        };
        firebase.initializeApp(firebaseConfig);
    </script>
    <script src="main.dart.js" type="application/javascript"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用 firebase 数据库时,日志中出现错误:

MissingPluginException(No implementation found for method DatabaseReference#set on channel plugins.flutter.io/firebase_database)
package:dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 196:49  throw_
package:flutter/src/services/platform_channel.dart 319:7 …
Run Code Online (Sandbox Code Playgroud)

firebase firebase-realtime-database flutter flutter-web

15
推荐指数
3
解决办法
6483
查看次数

从带mypy注释的python函数返回None,多种返回类型

我来自打字稿背景。我正在将静态类型检查引入到我正在研究的python项目中(使用mypy)。

在Typescript中,从带有注释以返回其他内容(例如字符串)的函数中返回null是有效的:

function test(flag: boolean): string {
    if(flag) {
        return 'success';
    } else {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

对函数进行注释以使其具有多种潜在的返回类型(例如字符串或布尔值)也是有效的:

function test(flag: boolean): string | boolean {
    if(flag) {
        return 'success';
    } else {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,在使用mypy的python中,不允许从注释为return的函数返回None str

def test(flag: bool) -> str:
    if flag:
        return 'success'
    else:
        return None
        # [mypy] error:Incompatible return value type (got "None", expected "str")
Run Code Online (Sandbox Code Playgroud)

此外,我看不到注释多种返回类型的方法,即str | None

我应该如何使用mypy处理类似的事情?从错误状态返回None的函数遍布我的代码库。

python static-typing function return-type mypy

8
推荐指数
1
解决办法
1476
查看次数

在特定目录的上下文中运行 python unittest

在我的 python 应用程序中,我使用程序启动位置的相对路径打开 mp3 文件。为了简单起见,我在这里对我的项目中遇到的问题进行了最小化的重现。

\n\n

基本上,我有这样的结构:

\n\n
src\n\xe2\x94\x94\xe2\x94\x80 main.py\ntest\n\xe2\x94\x94\xe2\x94\x80 test_main.py\n
Run Code Online (Sandbox Code Playgroud)\n\n

main.py有一个简单的函数,可以打印并返回当前工作目录:

\n\n
src\n\xe2\x94\x94\xe2\x94\x80 main.py\ntest\n\xe2\x94\x94\xe2\x94\x80 test_main.py\n
Run Code Online (Sandbox Code Playgroud)\n\n

因此,如果我cd进入该src文件夹并运行,python main.py我会看到:

\n\n
def get_cwd() -> str:\n    directory = os.path.basename(os.getcwd())\n    print(\'Current directory =\', directory)\n    return directory\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是期望的行为,因为在我的程序中,mp3 文件的文件路径是相对于src.

\n\n

当我尝试编写测试时,问题就出现了。--start-directory无论我传递给什么,我似乎都无法通过这样的测试--top-level-directory

\n\n
Current directory = src\n
Run Code Online (Sandbox Code Playgroud)\n\n

问题:如果将测试保存到不同的目录,我如何运行我的测试,就好像它们在特定目录的上下文中运行一样?

\n\n

限制条件:

\n\n
    \n
  • 测试必须使用绝对路径导入,如我的示例所示:from\nsrc.main import get_cwd
  • \n
\n

python python-3.x python-unittest

7
推荐指数
1
解决办法
5315
查看次数

Docker“无法将文件 &lt;path&gt; 添加到 tar: readlink &lt;path&gt; 系统找不到指定的文件”

我是 docker 的初学者,试图使用 Creator 的更新 bash 子系统让它在我的 Windows 10 机器上运行。我的 dockerfile 在我的 mac 上构建得很好,但是当我docker build在 Windows 上尝试使用相同的文件时,我收到如下错误:

time="2017-08-28T14:44:36-07:00" level=error
msg="Can't add file \\\\?\\C:\\Users\\username\\Workspace\\...\\node_modules\\.bin\\nodemon
to tar: readlink \\\\?\\C:\\Users\\username\\Workspace\\...\\node_modules\\.bin\\nodemon:
The system cannot find the file specified."
Run Code Online (Sandbox Code Playgroud)

这是为我所有的 node_modules 依赖项打印出来的。我的第一个问题是:是什么触发了我所有 node_modules 的“添加”操作?这些错误信息是在我的 dockerfile 的第一行执行之前打印出来的

Step 1/25 : FROM ubuntu:14.04
Run Code Online (Sandbox Code Playgroud)

其次,这个问题是否与windows中的不同路径有关?对我来说,错误最奇怪的部分是奇怪的路径\\\\?\\C:\\Users\\username。路径中有过多的斜杠和问号是怎么回事?

第三,就我一个人吗?还是大家在windows bash子系统上使用docker时遇到问题?

注意:我已经尝试设置 Docker 工具箱并运行快速启动终端。运行快速启动终端时出现以下错误

Error with pre-create check:
"This computer is running Hyper-V. VirtualBox won't boot a 64bits VM when Hyper-V is activated. …
Run Code Online (Sandbox Code Playgroud)

windows node-modules docker creators-update

5
推荐指数
0
解决办法
2040
查看次数

使用RxJS 6.x WebSocketSubject客户端

我无法弄清楚如何在rxjs中使用WebSocketSubjects v6.x

这是工作的HTML/JS v5.5.6.注释掉的代码是我试图让它在v6.x以下工作:

<html>
<head>
    <!-- <script src="https://unpkg.com/@reactivex/rxjs@6.0.0/dist/global/rxjs.umd.js"></script> -->
    <script src="https://unpkg.com/@reactivex/rxjs@5.5.6/dist/global/Rx.js"></script>
    <script>
        // const { WebSocketSubject } = rxjs.webSocket;
        // const socket$ = WebSocketSubject.create('ws://localhost:8080');
        const socket$ = Rx.Observable.webSocket('ws://localhost:8080');
        socket$.subscribe(
                (data) => console.log(data),
                (err) => console.error(err),
                () => console.warn('Completed!')
            );
        socket$.next(JSON.stringify({
            event: 'events',
            data: 'test',
        }));
        console.log('here')
    </script>
</head>
<body></body>
</html>
Run Code Online (Sandbox Code Playgroud)

websocket rxjs

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

iOS 模拟器因麦克风权限请求而崩溃

我的环境:

  • 权限处理程序 3.0.0
  • 颤振 v1.2.1
  • OSX High Sierra 10.13.6
  • Xcode 10.1 版。

当我在 iOS 模拟器中请求麦克风权限时,我的应用程序崩溃。

PermissionStatus mic = await PermissionHandler()
    .checkPermissionStatus(PermissionGroup.microphone);
print('microphone permission? ${mic.toString()}');
try {
    if (mic != PermissionStatus.granted) {
        await PermissionHandler().requestPermissions([PermissionGroup.microphone]);
    }
} catch (e) {
    print(e);
}
Run Code Online (Sandbox Code Playgroud)

没有抛出或捕获错误,但在颤振调试控制台中,我看到:

flutter: microphone permission? PermissionStatus.unknown
Lost connection to device.
Run Code Online (Sandbox Code Playgroud)

这意味着checkPermissionStatus()返回unknown. 但是当我请求许可时,应用程序崩溃了。我还没有能够在真正的 iPhone 上尝试这个。一切都在 Android 模拟器上完美运行。

我已经看到 Xcode 10.1 中的麦克风存在一些问题:

我试过的

  • 新鲜构建 flutter clean
  • 在硬件 > 音频输入中更改模拟器麦克风输入

我可以尝试升级到 Xcode 10.2,但我需要先获得 mojave。如果可能的话,尽量避免这种情况,因为它甚至可能无法解决问题。我也可以尝试使用真正的 iPhone 设备而不是模拟器。不过,希望模拟器不会崩溃。 …

xcode microphone ios ios-simulator flutter

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