小编Zen*_*nko的帖子

如何在 Flutter 中为 Firebase 连接设置侦听器?

所以我试图捕捉“无网络”错误。

我正在听 Firestore 中的文档,如下所示:

final docRef = FirebaseFirestore.instance.collection(kInfoCollection).doc(kInfoDocument);

docSubscription = docRef.snapshots().distinct().listen((_) {});

docSubscription.onData((snapshot) => _processInfo(snapshot))

docSubscription.onError((e, s) {
        final errorMessage = 'Message:\n$e \nThe Stack was:\n$s';
        print('Error $errorMessage');
        throw InfoException(errorMessage);
      });

Run Code Online (Sandbox Code Playgroud)

如您所见,侦听器正在侦听文档,如果捕获到任何文档,则会抛出错误。

但是没有发现控制台中显示的这些 Firebase 错误:

Connection 1: encountered error(1:53)
6.26.0 - [Firebase/Firestore][I-FST000001] WatchStream (283fb4118) Stream error: 'Unavailable: Network connectivity changed'
6.26.0 - [Firebase/Firestore][I-FST000001] WatchStream (283fb4118) Stream error: 'Unavailable: DNS resolution failed'
6.26.0 - [Firebase/Firestore][I-FST000001] WatchStream (283fb4118) Stream error: 'Unavailable: DNS resolution failed'
6.26.0 - [Firebase/Firestore][I-FST000001] WatchStream (283fb4118) Stream error: 'Unavailable: failed …
Run Code Online (Sandbox Code Playgroud)

firebase flutter google-cloud-firestore

11
推荐指数
1
解决办法
615
查看次数

Flutter Pubspec.yaml 警告:可发布的包不能有 git 依赖项

我在我的 pubspec.yaml 中使用 Sembast Cloud Firestore 类型适配器:

  sembast_cloud_firestore_type_adapters:
    git:
      url: git://github.com/tekartik/sembast_flutter_more.dart
      path: cloud_firestore_type_adapters
      ref: dart2
      version: '>=0.1.0'
Run Code Online (Sandbox Code Playgroud)

和加载适配器:

  loading:
    git:
      url: git://github.com/leonzone/loading.git
      path: loading
      ref: 8f5a63f
Run Code Online (Sandbox Code Playgroud)

一切正常,直到今天。我对以上两行都收到此错误: warning: Publishable packages can't have git dependencies.

这是我的flutter doctor

Doctor summary (to see all details, run flutter doctor -v):
[?] Flutter (Channel master, 1.24.0-7.0.pre.71, on Mac OS X 10.15.7 19H2 darwin-x64,
    locale en-US)
[?] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
[?] Xcode - develop for iOS …
Run Code Online (Sandbox Code Playgroud)

git flutter

11
推荐指数
1
解决办法
5556
查看次数

如何解决 Flutter iOS 中的“Command PhaseScriptExecution failed with a nonzero exit code”

我在这个问题上浪费了将近一周的时间却毫无结果。

\n

这是错误:

\n
Failed to build iOS app\nError output from Xcode build:\n\xe2\x86\xb3\n    ** BUILD FAILED **\n\n\nXcode\'s output:\n\xe2\x86\xb3\n    Writing result bundle at path:\n        /var/folders/fq/7j2x58m57c9bk10jg7q47krr0000gn/T/flutter_tools.vyKPSp/flutter_ios_build_temp_di\n        rGZCufm/temporary_xcresult_bundle\n\n\n    Failed to package /Volumes/ME/Projects/Flutter-Proj/app.\n    Command PhaseScriptExecution failed with a nonzero exit code\n    note: Building targets in dependency order\n    warning: Run script build phase \'Create Symlinks to Header Folders\' will be run during every\n    build because it does not specify any outputs. To address this warning, either add output\n    dependencies to the script phase, or configure …
Run Code Online (Sandbox Code Playgroud)

xcode ios flutter

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

Android Studio 4.1 在 Mac 中卡在加载屏幕

从昨天开始,我的 Android Studio 就一直停留在加载屏幕上。X_X

在此输入图像描述

我尝试过的:

  1. 正在重新启动计算机。
  2. 清除垃圾文件和日志。
  3. 完全卸载然后重新安装AndroidStudio。
  4. 遵循了许多不同的解决方案(例如:其中之一是here)。但还是不行。解决方案摘录:
  • 打开文件Android Studio安装目录/bin/idea.properties
  • 添加disable.android.first.run=true到末尾
  • 重启Android Studio
  1. 当我删除 SDK 时,它可以工作,但是在我让它再次下载 SDK 后,它会在该会话中打开,然后在下一个会话中再次卡住。

好吧,我不想每次打开 Android Studio 时总是删除并重新下载 SDK。那么有人对此有什么解决办法吗?

谢谢

更多信息:

Android Studio 4.1
Build #AI-201.8743.12.41.6858069, built on September 23, 2020
Runtime version: 1.8.0_242-release-1644-b3-6222593 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.15.6
GC: ParNew, ConcurrentMarkSweep
Memory: 4029M
Cores: 8
Registry: ide.new.welcome.screen.force=true
Non-Bundled Plugins: org.jetbrains.kotlin, Dart, io.flutter
Run Code Online (Sandbox Code Playgroud)

我的jave -version

openjdk version "14.0.1" 2020-04-14
OpenJDK Runtime Environment (build 14.0.1+14) …
Run Code Online (Sandbox Code Playgroud)

java macos android android-studio flutter

7
推荐指数
2
解决办法
2468
查看次数

升级后,Flutter PlatformView 漂浮在所有其他小部件之上

PlatformView升级之前一切正常,然后我在稳定频道上将 Flutter 更新到了 3.0.1 版本然后,突然发生了奇怪的行为。

\n

我创建了一个 GIF 供您参考。\n奇怪的行为是:

\n
    \n
  1. PlatformView 位于所有其他小部件之上。你可以看到DropDownMenu它背后的事情。我尝试过使用Stack或其他小部件,但它不起作用。PlatformView 始终掌握一切。
  2. \n
  3. 事情变得更奇怪了。当我们使用 进入下一页时,PlatformView 会浮动在屏幕顶部Navigator.push。正如你所看到的,它后面还有另一张图片。即使没有PlatformView即使另一页上
  4. \n
\n

对于 的其余实现,我按照此处的NativeView文档进行操作

\n

再一次,它在升级之前工作得很好。\n应该发生的事情是,除非PlatformView使用指定,否则不应位于其他小部件之上。\n当我转到下一页时,它应该位于新页面的后面,并且不应漂浮。Stack

\n

我错过了什么吗?请告诉我。谢谢

\n

在此输入图像描述

\n

在此输入图像描述

\n

我在 Dart 端的代码:\nmain.dart

\n
class MyHomePage extends StatefulWidget {\n  const MyHomePage({Key? key, required this.title}) : super(key: key);\n\n  final String title;\n\n  @override\n  State<MyHomePage> createState() => _MyHomePageState();\n}\n\nclass _MyHomePageState extends State<MyHomePage> {\n  late EffectController _controller;\n …
Run Code Online (Sandbox Code Playgroud)

android flutter

7
推荐指数
0
解决办法
921
查看次数

如何在 Flutter 中更改颜色的色调、饱和度或值?

假设我在 Flutter 中有一个 Color 对象,我想改变它的色相、饱和度、亮度或亮度,我该怎么做?

谢谢

colors flutter

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

如果问题被陈旧的机器人关闭,我如何在 Github 中重新打开它?

我打开了这个问题,但是因为很长一段时间没有答案,陈旧的机器人将它标记为“陈旧”,最后该机器人将其关闭。作为问题的所有者,我该如何重新打开它?

顺便说一下,我知道 Github 有这些规则:

  • 你可以打开问题
  • 您可以评论所有现有问题(打开或关闭)
  • 你可以关闭你自己的问题
  • 如果你自己关闭它们,你可以重新打开你自己的问题
  • 您不能关闭或重新打开其他人打开的问题
  • 如果回购合作者关闭了它们,您将无法重新打开自己的问题

但是我的情况不是上述情况,因为我是问题的所有者,并且问题不是由回购合作者而是由机器人关闭的。

谢谢

github github-issues

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

每当在 Google Cloud SQL 中插入或更新数据时,是否可以向 Google Pub/Sub 发布消息?

我是 Google Cloud SQL 和 Pub/Sub 的新手。我在任何地方都找不到关于此的文档。但另一个问题的接受和赞成的答案似乎是说,只要数据库发生插入,就可以发布发布/订阅消息。摘录自该答案:

2 - 理想的解决方案是创建 Pub/Sub 主题并在将新数据插入数据库时​​发布到该主题。

但由于我的问题是不同的,因此我在这里提出了一个新问题。

背景:我的应用程序结合使用了 Google Cloud SQL、Firestore 和实时数据库,以发挥其独特的优势。

我想要做的是一旦在 Google Cloud SQL 中插入成功,就能够写入 Firestore 和 Realtime 数据库。根据上面的答案,这是我应该做的步骤:

  1. 该应用程序调用 Cloud Function 将数据插入 Google Cloud SQL 数据库 (PostgreSQL)。注意:Postgres 表有一些重要的约束和触发器 Postgres 函数,这就是我们要从这里开始的原因。
  2. 插入成功后,我希望 Google Cloud SQL 向 Pub/Sub 发布一条消息。
  3. 然后还有另一个订阅 Pub/Sub 主题的 Cloud Function。该函数将相应地写入Firestore /实时数据库。

我已经弄清楚了步骤 #1 和 #3。我正在寻找的解决方案是步骤#2。

postgresql google-cloud-sql firebase google-cloud-pubsub google-cloud-firestore

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

即使在 .bash_profile 中更改 Dart PATH 也不会更改

我已经添加了PATH.bash_profile这样的:

export PATH="$PATH:/Users/ME/development/flutter/bin/cache/dart-sdk/bin"
Run Code Online (Sandbox Code Playgroud)

然后重新启动了我的 Mac,但是当我这样做时which flutter dart,它仍然显示:

/Users/ME/development/flutter/bin/flutter
/usr/local/bin/dart
Run Code Online (Sandbox Code Playgroud)

根据这里的flutter 官方网站上的文章,最好将 dart 与 Flutter 放在同一文件夹中。文章摘录:

如上所示,这两个命令不是来自同一个 bin 目录。在来自 /usr/local/bin 的命令之前更新您的路径以使用来自 /path-to-flutter-sdk/bin 的命令(在这种情况下)。更新 shell 以使更改生效后,再次运行 which 或 where 命令应该会显示 flutter 和 dart 命令现在来自同一目录。

谢谢

bash path dart flutter

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

无法解析 org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.10

我是 Android 编程的新手,但对 Flutter 并不陌生。到目前为止,我一直在 iOS 上进行测试。现在,当我想在 Android 上进行测试时,我遇到了这个问题:

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'android'.
> Could not resolve all artifacts for configuration ':classpath'.
   > Could not resolve org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.10.
     Required by:
         project :
      > Could not resolve org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.10.
         > Could not get resource 'https://dl.google.com/dl/android/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.4.10/kotlin-gradle-plugin-1.4.10.pom'.
            > Could not GET 'https://dl.google.com/dl/android/maven2/org/jetbrains/kotlin/kotlin-gradle-plugin/1.4.10/kotlin-gradle-plugin-1.4.10.pom'.
               > Connect to 127.0.0.1:1088 [/127.0.0.1] failed: Connection refused (Connection refused)
      > Could not resolve org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.10.
         > Could not get resource …
Run Code Online (Sandbox Code Playgroud)

android gradle kotlin flutter

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

从 Flutter 中的 FirebaseStorage URI 获取 URL

抱歉这个菜鸟问题。但是如何从 Uri 获取 Url 字符串?根据我的理解,Url 是 Uri 的子集,但我找不到任何类似.getUrl. 我错过了什么吗?

背景:Flutter Web 中的 FirebaseStorage 以某种方式返回
而不是.getDownloadURL()UriString

来自 Flutter Web 的 FirebaseStorage 包的解释:

Future<Uri> getDownloadURL() 包:firebase/src/storage.dart

返回此引用的长期下载 URL。

getDownloadURL来自Flutter App 的FirebaseStorage 包的解释:

Future<String> getDownloadURL() 包:firebase_storage/firebase_storage.dart

获取该对象的长期下载 URL。

在 Flutter 应用程序中我的 pubspec.yaml:

  firebase_core: ^0.5.1
  firebase_auth: ^0.18.2
  cloud_firestore: ^0.14.2
  firebase_storage: ^5.0.0-dev.4
Run Code Online (Sandbox Code Playgroud)

在 Flutter Web 中我的 pubspec.yaml:

  firebase: ^7.3.2
  cloud_firestore: ^0.14.2
  cloud_functions: ^0.6.0+1
Run Code Online (Sandbox Code Playgroud)

我尝试寻找解决方案并阅读文档,但没有找到任何有关将 Uri 从 Firebase 存储getDownloadURL方法转换为 Url 的文章。似乎几乎被视为同一件事。但这给了我错误。参见下面的代码:

*** 代码:

Future<String> uploadImage(String localFilename, …
Run Code Online (Sandbox Code Playgroud)

firebase flutter firebase-storage flutter-web

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

如何以编程方式模拟 Flutter 中按钮上的 onTap?

例如:

// Update: This GestureDetector is embedded inside a third party package
// that will invoke a series of animation along with the onTap button
GestureDetector(
   onTap: () => print('Hey There!'),
   child: Widget1(),
)


// Then another place in the same screen
GestureDetector(
    onDoubleTap: () { 
           //Call the onTap of Widget1's GestureDetector
           print('I'm Here');
        }
    child: Widget2(),
)
Run Code Online (Sandbox Code Playgroud)

我想是当用户双击Widget2时,也会调用onTap的回调Widget1

更新:所以我不想只调用传递给onTapofGestureDetector的函数Widget1,而是以编程方式点击onTapWidget1 的GestureDetector

我怎么做?

gesturedetector flutter

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