问题
App Check 在生产模式下工作正常,但在调试模式下出现错误:
401: Firebase App Check token is invalid.
我尝试了两件事:
<script>self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;</script>通过插入到 来在应用程序中生成调试令牌index.html。然后将其作为调试令牌添加到 Firebase 控制台中。我还注意到,通过这种方式,每次应用程序重新启动时都会生成一个新的调试令牌。代码
if (kReleaseMode) {
await FirebaseAppCheck.instance.activate(
webRecaptchaSiteKey: LIVE_TOKEN,
);
} else {
await FirebaseAppCheck.instance.activate(
webRecaptchaSiteKey: DEBUG_TOKEN,
);
}
Run Code Online (Sandbox Code Playgroud)
问题
使用 FlutterFire,生成和使用 App Check 的调试令牌的正确方法是什么?遵循文档对我来说不起作用。
文档
https://firebase.google.com/docs/app-check/flutter/default-providers
https://firebase.flutter.dev/docs/app-check/debug-provider/#activating-the-debug-provider-web
背景
Firebase 身份验证会发送用于注册、密码更改等的电子邮件。这些电子邮件包含带有我项目的内部 Firebase 名称的链接。
问题
我想用我的自定义域替换该内部名称,这似乎可以通过更改操作 URL 并使用动态链接来实现。
我不想使用自己的代码处理电子邮件操作,而只是将 Firebase 域替换为自定义域。它是关于发送包含带有自定义域的链接的电子邮件,因此看起来不错。
现有答案
存在答案,但我不明白这到底是如何工作的。我无法发表评论,因为我的声誉太低了。
/sf/ask/3288053611/#:~:text=You%20just%20need%20to%20create ,动态%20Link%20和%20hit%20done。
插图
row:1,,col:0。我尝试了各种方法来定义FormArray保存 s 数组FormControl。但我不确定如何FormControl在 Angular 模板中单独访问各自的行索引和列索引。
模型
[
['a', 'b'],
['c', 'd']
]
Run Code Online (Sandbox Code Playgroud)
表格组
form = new FormGroup({
rows: new FormArray([...])
});
Run Code Online (Sandbox Code Playgroud)
预期结果
我尝试过各种类似的事情:
<form [formGroup]="form"">
<div formArrayName="rows">
<div
*ngFor="let row of rows.controls; let rowIndex = index" [formGroupName]="rowIndex">
<div formArrayName="cols">
<div
*ngFor="let col of form.get('cols').controls; let colIndex = index"
[formGroupName]="colIndex">
<input [formControlName]="colIndex" />
</div>
</div>
</div>
</div>
</form>
Run Code Online (Sandbox Code Playgroud) 背景
尝试设置一个简单的图像编辑器,允许用户通过手势缩放和移动图像。
GestureDetector通过,Transform.scale和可以很好地进行缩放和移动Transform.rotate。
问题
缩放后,用户仍然可以缩放已经缩放的图像。
但是:这GestureDetector不会改变执行命中测试的区域。
问题:用户只能使用原始的 hitbox 来操作图像。无法通过在扩展的外部形状上使用两指捏合手势来缩放图像。
图片
第一张图片演示了基本设置。
第二张图片演示了使用手势的结果。它显示了小的、未改变的内部碰撞箱。以及由此产生的缩放和旋转形状。
填充的框是碰撞框。外部矩形显示缩放后的图像。
期望的行为
在缩放后的外部形状上使用两指捏合手势应该允许进一步操作对象。
相反,内部打击盒可以单独使用。但用户期望使用缩放后的外部形状来进一步缩放和移动对象。
代码
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
home: GestureTest(),
);
}
}
class DrawContainer {
Color color;
Offset offset;
double scale;
double angle;
late double baseScaleFactor;
DrawContainer(this.color, this.offset, this.scale, this.angle) {
baseScaleFactor = scale;
}
onScaleStart() => …Run Code Online (Sandbox Code Playgroud) angular ×1
arrays ×1
debugging ×1
dns ×1
firebase ×1
flutter ×1
flutter-web ×1
formarray ×1
javascript ×1
transform ×1