当一个用户按下按钮时,如何向另一个用户发送通知?有人可以给我看一个代码片段吗?
我意识到这个问题之前被问过,但是,由于有“几个答案”,所以它被关闭了。提供的类似链接没有解释在flutter中发送通知。
我遇到了 Firebase Messaging,在阅读完指南后,他们在这里发布了: https: //firebase.google.com/docs/cloud-messaging/flutter/client,我能够获取用户的设备令牌。但是,本教程仅介绍使用 Firebase 控制台向设备发送测试消息的示例。给定(其他用户的)设备令牌,我如何从flutter应用程序中向另一个用户发送通知?是否有一个我可以运行的函数可以获取我不知道的设备令牌和通知正文?
android devicetoken firebase flutter firebase-cloud-messaging
我创建了一个 flutter 项目,当我尝试使用它添加图标时,即使在 pubspec 中icons.[icon here]也没有显示uses-material-design: true
Code of Icon
import 'package:flutter/material.dart';
import 'package:search_choices/search_choices.dart';
class DonateFood extends StatefulWidget {
const DonateFood({Key? key}) : super(key: key);
@override
_DonorOtherState createState() => _DonorOtherState();
}
class _DonorOtherState extends State<DonateFood> {
@override
Widget build(BuildContext context) {
String dropdownValue = 'Food Type';
return Scaffold(
body: Container(
child: const Center(
child: Icon(
Icons.six_mp_sharp,
size: 100,
),
),
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
name: feedme
description: A new Flutter project.
# The following line prevents …Run Code Online (Sandbox Code Playgroud) 我正在我的移动应用程序中集成聊天功能,并决定使用 Firebase 实时数据库作为后端而不是 Firestore 作为降低成本的机制。然而,我遇到了一个问题。Realtime Database关于如何使用来自而不是的数据创建无限滚动的文档似乎非常稀疏Firestore。
以下是我的聊天消息的组织。这是我想使用的查询:
FirebaseDatabase.instance
.ref("messages/${widget.placeID}")
.orderByChild("timeStamp")
Run Code Online (Sandbox Code Playgroud)
这是我想要为每个结果返回的小部件:
MessageWidget(
message: message.text,
id: message.uid,
name: message.name,
lastSender: message.lastSender,
date: message.timeStamp,
profilePicture: message.profilePicture,
);
Run Code Online (Sandbox Code Playgroud)
该查询有效,并且我已经根据查询的 JSON 响应编写了 MessageWidget。我所需要的只是每当查询到达滚动顶部时就调用该查询,并加载更多MessageWdigets。另请注意,这是一个聊天应用程序,用户可以向上滚动以加载较旧的消息,并将其添加到上一条消息之上。
谢谢你!
编辑:这是我目前拥有的代码:
Flexible(
child: StreamBuilder(
stream: FirebaseDatabase.instance
.ref("messages/${widget.placeID}")
.orderByChild("timeStamp")
.limitToLast(20)
.onValue,
builder:
(context, AsyncSnapshot<DatabaseEvent> snapshot) {
if (!snapshot.hasData) {
return const CircularProgressIndicator();
} else {
Map<dynamic, dynamic> map =
snapshot.data!.snapshot.value as dynamic;
List<dynamic> list = [];
list.clear();
list = map.values.toList();
return Align(
alignment: …Run Code Online (Sandbox Code Playgroud) chat infinite-scroll firebase firebase-realtime-database flutter