提供的答案没有给我提示我的案例有什么问题。所以我在控制台中收到以下错误:
react-jsx-dev-runtime.development.js?bfcc:117 Warning: Each child in a list should have a unique "key" prop.
Check the render method of `Feed`. See https://reactjs.org/link/warning-keys for more information.
Run Code Online (Sandbox Code Playgroud)
这是我在返回语句中的代码:
return (
<>
<Header></Header>
<div className={hfstyles.feed} style={{ 'maxWidth': '980px;', 'textAlign': 'center', 'margin': '0 auto', 'padding': '5em 0' }}>
{feed.map((post, index) => {
const postBefore = index == 0 ? new Date() : feed[index - 1].createdAt;
return randomIndex == index ? (
<>
<PostBasic
post={post}
postBefore={postBefore}
key={post.id}
/>
<RandomMessage/>
</>)
:
(<PostBasic
post={post}
postBefore={postBefore}
key={post.id} …Run Code Online (Sandbox Code Playgroud) 我想知道如何保护我的 api 路由。文档说,api 路由默认是同站点源。
API 路由不指定 CORS 标头,这意味着它们仅在默认情况下是同源的。您可以通过使用 cors 中间件包装请求处理程序来自定义此类行为。 Next.js 文档
但是,如果我使用像 Postman 这样的请求工具,我总是可以调用它并获取结果:
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
export default (req, res) => {
res.status(200).json({ name: 'John Doe' })
}
Run Code Online (Sandbox Code Playgroud)
这怎么可能?我只想限制对我的应用程序的访问。
我希望我的应用程序中的用户保持登录状态。我正在使用带有 IDToken 的 firebase 身份验证,该身份验证持续 1 小时直至过期。如果会话即将过期,我想每次自动刷新会话。
到目前为止我在这里读到的内容https://firebase.google.com/docs/reference/rest/auth/#section-refresh-token应该可以通过某种方式https://securetoken.googleapis.com/v1/token?key=[API_KEY]
这是我现在的完整身份验证代码(颤振)
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import '../provider/http_exception.dart';
import 'dart:async';
import 'package:shared_preferences/shared_preferences.dart';
class Auth with ChangeNotifier {
String _token;
DateTime _expiryDate;
String _userId;
Timer _authTimer;
bool wasLoggedOut = false;
bool onBoarding = false;
Future<void> createUser(String email, String firstName, String lastName) async {
final url = 'https://test45.firebaseio.com/users/$userId.json?auth=$token';
final response = await http.put(url, body: json.encode({
'userEmail': email,
'userIsArtist': false,
'userFirstName': firstName,
'userLastName': lastName,
}));
print('post ist done');
print(json.decode(response.body)); …Run Code Online (Sandbox Code Playgroud) 我有一个包含每个项目的音乐的列表。如果我关闭屏幕,我会更改index当前位置BottomNavigationPage并调用停止函数来停止音频,但有时这不起作用。如果歌曲正在加载过程中或用户速度非常快,歌曲将继续在不同页面上播放。
我使用https://pub.dev/packages/audioplayers插件。
这是我的缩小代码示例完整工作演示:编辑::
因此,我按照 @Ringil 的提示提供了一个完整的工作示例,其中包含我在这里面临的实际问题。这是我的代码:
import 'package:audioplayers/audioplayers.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int currentIndex =0;
@override
Widget build(BuildContext context) …Run Code Online (Sandbox Code Playgroud) dart flutter flutter-layout flutter-listview flutter-pageview
我希望有人可以帮助我完成以下实现:我只想从 firestore 检索随机文档。
按照这个使用自动 ID 版本的流行指南,我使用自动生成的文档 ID 并将它们保存为 field id。
Firestore:如何获取集合中的随机文档
[..]自动 ID 版本 如果您使用我们的客户端库中提供的随机生成的自动 ID,您可以使用同一系统随机选择文档。在这种情况下,随机排序的索引是文档 id。[...]
为查询获取随机 id 似乎是显而易见的,但对于我来说,作为菜鸟,我不确定从哪里随机获取自动 id 值以及如何在_randomIndex不运行查询的情况下适合我的值。我该如何定义我的_randomIndex现在?
QuerySnapshot querySnapshot = await ref
.where('id', isGreaterThanOrEqualTo: _randomIndex)
.orderBy('id', descending: true)
.limit(1)
.get();
Run Code Online (Sandbox Code Playgroud)
谢谢大家!我认为对于更多的人来说,如何通过查看上述指南并使用flutter来实现给定的方法可能并不是那么简单。
例如,我在 flutter 上下文中听到有关 uuid 和随机 id 的信息,总是向我推荐流行的库,例如https://pub.dev/packages/uuid/example和https://pub.dev/packages/flutter_guid/install
就我而言,它们不起作用,感谢@Jigar Patel,我们现在可以完美地随机化它。在下面的例子中我们还可以确定文档的数量:
import 'dart:math';
String getRandomGeneratedId() {
const int AUTO_ID_LENGTH = 20;
const String AUTO_ID_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
const int maxRandom = AUTO_ID_ALPHABET.length;
final Random …Run Code Online (Sandbox Code Playgroud) 希望有人正面临我的问题或可以提供解决方案。我使用 firebase 来保存和播放我的音乐。来自我的数据库项目的以下流链接不适用于 AudioManager ( https://pub.dev/packages/audio_manager ) 或 audioplayers 插件 ( https://pub.dev/packages/audioplayers ),我没有找到任何其他插件它以正确的方式工作的地方。老实说,让它与 AudioManager 插件一起工作会很棒。我还尝试在两个插件提供程序项目中提出问题,但目前没有任何成功。
我面临的问题: 功能停止功能无法识别停止。上一个和下一个以及 PlayPause 仅适用于延迟。在提供的示例中,我使用 AudioManager 插件。
在提供的示例中,我们有一个水平列表,当您按下右上角的按钮时,我试图停止播放音乐。使用流媒体链接无法识别任何内容。它忽略停止歌曲。下一首歌曲也有轻微的延迟。
如果您将音频链接更改为带有文件结尾的链接,则停止播放歌曲的效果非常好,延迟也更少。在我的情况下更重要的是在没有文件结尾的情况下获取链接源!
var audioFiles = [
"https://docs.google.com/uc?export=open&id=1SaJWqfQuHnFtL7uqrzfYG31hzOnqDM3r",
"https://docs.google.com/uc?export=open&id=1FZkFMjQyWguAl0RMAsYDEZ07c_Qf7gjz",
"https://docs.google.com/uc?export=open&id=1GqrwQ3eRuiil0p-Na_R1tMAvggp9YrbH",
];
Run Code Online (Sandbox Code Playgroud)
如果您使用文件类型结尾的链接,如下例所示,一切正常且没有延迟:
var audioFiles = [
"https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3",
"https://www.soundhelix.com/examples/mp3/SoundHelix-Song-2.mp3",
"https://www.soundhelix.com/examples/mp3/SoundHelix-Song-3.mp3"
];
Run Code Online (Sandbox Code Playgroud)
重现代码:
import 'package:audio_manager/audio_manager.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: …Run Code Online (Sandbox Code Playgroud) 我是 bloc 的新手,正在尝试使用包实现聊天flutter_bloc。我的消息传递服务是 twilio Conversations api。我的功能运行得很好,我只是无法刷新我的消息列表。有人可以告诉我我在这里缺少什么吗?如果我访问聊天页面,我可以看到所有消息,只有当我们有新消息时它才不会刷新。
由于取得了小小的成功,我更新了我的代码。每当用户 A 或用户 B 加入聊天时,都会显示所有消息。如果我以用户 A 的身份发送消息,则该消息现在将在用户 A 的 UI 中可见,并且它是对话的一部分,但用户 B 在不重新加载的情况下不会收到添加到对话中的新消息。这里缺少哪个步骤以便其他用户也收到消息?我只需要帮助转换我的代码,以便我有一个流,聊天的其他参与者可以收听,这样他们的对话也令人耳目一新。
\n我的 chat_event.dart
\n abstract class ChatEvent extends Equatable{\n const ChatEvent();\n\n @override\n List<Object> get props => [];\n}\n\nclass InitialChatEvent extends ChatEvent {}\n\nclass AddMessage extends ChatEvent {\n final String messageToPost;\n\n AddMessage(this.messageToPost);\n}\nRun Code Online (Sandbox Code Playgroud)\n我的 chat_state.dart
\n class ChatState extends Equatable {\n final Messages messages;\n\n const ChatState({required this.messages});\n\n factory ChatState.initial() => ChatState(messages: Messages(messages: []));\n\n @override\n List<Object> get props => [messages];\n\n @override\n …Run Code Online (Sandbox Code Playgroud) flutter bloc flutter-bloc twilio-conversations flutter-streambuilder
假设我们有几张背景图片:
我们如何用函数选择图像的左上角、右上角、左下角、右下角和中心像素颜色并将它们保存在变量中?
没发现什么好东西可以去..
编辑,这是我到目前为止得到的代码。
import 'dart:async';
import 'dart:typed_data';
import 'dart:ui' as ui;
import 'package:image/image.dart' as img;
import 'package:flutter/services.dart' show rootBundle;
import 'package:flutter/rendering.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:muego_dev2/models/songs.dart';
import 'package:provider/provider.dart';
class ColorDetect extends StatefulWidget {
//static const routeName = '/';
@override
_ColorDetectState createState() => _ColorDetectState();
}
class _ColorDetectState extends State<ColorDetect> {
@override
Widget build(BuildContext context) {
final coverData = 'https://flutter.github.io/assets-for-api-docs/assets/widgets/owl.jpg';
img.Image photo;
void setImageBytes(imageBytes) {
List<int> values = imageBytes.buffer.asUint8List();
photo = null;
photo = img.decodeImage(values);
}
// image lib uses …Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个视频流应用程序,实际上我注意到我的应用程序中的带宽非常高。我正在使用免费的Spark 计划,并且我已经达到了免费计划的限制,其中包含5 个视频。
我正在我的应用程序中流式传输视频,它们不超过 10 mb 并上传到我的 firebase 存储中。我将 firebase 存储链接保存在我的实时数据库中,以使其可在应用程序中播放。
我想知道我是否做错了什么,有 5 个视频小于 10mb,我在大约 1 小时内消耗了 300mb 带宽。对于正在播放的每个视频,它占用大约 20-30mb 的带宽。
我该如何改进?当我有 1000 个用户时,我将每月支付数千美元。
所以基本上任务很简单,但我没有找到任何可行的解决方案来解决我的问题。我的网站上有一个巨大的上传脚本(目前是本地主机),但让我们将所有复杂性降低到唯一必要的程度。
所以我只想使用 Google App Script 将单个文件上传到 Google Drive 并接收它的 URL 以将其保存在 var 中,以便在我的函数中稍后处理该信息。
现在的问题是我的网站上已经有了表单,我不希望 script.google.com 中的表单作为额外的 html,我想将我的用户输入传输到 Google App Script,然后将其上传到 google drive 并返回 url回到我的网站,我可以将它保存到一个 var 中。
我现在的问题是,我不能把所有的东西放在一起。
这是我网站上的表格(简化版):
<form name="myForm" method="post">
<!-- <form name="first-form"> -->
<input type="text" placeholder="Name" id="myName">
<input type="file" name="myFile" id="myFile">
<button onclick="UploadFile()" type="submit">submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)
那么如何将我的信息上传到谷歌驱动器中并获得结果呢?如何在不使用 iFrame 或其他任何东西的情况下推送 Google App Script 中的数据?
谢谢你!
**** 工作示例,如果 html 在 scripts.google.com 中 ****
GS
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('forms.html').setTitle("Google File Upload by CTRLQ.org");
}
function uploadFileToGoogleDrive(data, file, name, email) {
try …Run Code Online (Sandbox Code Playgroud)