我正在尝试让我的 Flutter 应用程序在浏览器中运行,这取决于 firebase_database。没有任何关于如何做到这一点的文档,但我根据 firebase_core 和 firebase_auth 文档做出了一些假设:
https://github.com/FirebaseExtended/flutterfire/tree/master/packages/firebase_core/firebase_core_web
https://github.com/FirebaseExtended/flutterfire/tree/master/packages/firebase_auth/firebase_auth_web
我的应用程序在 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) 我来自打字稿背景。我正在将静态类型检查引入到我正在研究的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 应用程序中,我使用程序启动位置的相对路径打开 mp3 文件。为了简单起见,我在这里对我的项目中遇到的问题进行了最小化的重现。
\n\n基本上,我有这样的结构:
\n\nsrc\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
有一个简单的函数,可以打印并返回当前工作目录:
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
我会看到:
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
.
当我尝试编写测试时,问题就出现了。--start-directory
无论我传递给什么,我似乎都无法通过这样的测试--top-level-directory
:
Current directory = src\n
Run Code Online (Sandbox Code Playgroud)\n\n问题:如果将测试保存到不同的目录,我如何运行我的测试,就好像它们在特定目录的上下文中运行一样?
\n\n限制条件:
\n\nfrom\nsrc.main import get_cwd
我是 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) 我无法弄清楚如何在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) 我的环境:
当我在 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 设备而不是模拟器。不过,希望模拟器不会崩溃。 …
flutter ×2
python ×2
docker ×1
firebase ×1
flutter-web ×1
function ×1
ios ×1
microphone ×1
mypy ×1
node-modules ×1
python-3.x ×1
return-type ×1
rxjs ×1
websocket ×1
windows ×1
xcode ×1