I have code that generates a pdf, and saves it to firebase storage. It works great. but now I am trying to save this pdf to a firestore collection called "docs" as well. This is my issue: the docs security settings are as follows: 
match /docs/{document} {
 allow create: if request.resource.data.user\_reference == /databases/$(database)/documents/Users/$(request.auth.uid);
 allow read: if resource.data.user\_reference == /databases/$(database)/documents/Users/$(request.auth.uid);
 allow write: if resource.data.user\_reference == /databases/$(database)/documents/Users/$(request.auth.uid);
 allow delete: if resource.data.user\_reference == /databases/$(database)/documents/Users/$(request.auth.uid);
 }
It’s very important to keep these security rules the same to keep my app secure. Can you help me with the following code so it will also create the ‘docs’ document as well with the relevant arguments for fields: 

user\_reference (doc ref to user)
document-name 
pdf\_url (url from firebase pdf created)
time\_created 

Here is the code I have so far: 

// Automatic FlutterFlow imports
import '/backend/backend.dart';
import '/flutter\_flow/flutter\_flow\_theme.dart';
import '/flutter\_flow/flutter\_flow\_util.dart';
import '/custom\_code/actions/index.dart'; // Imports other custom actions
import '/flutter\_flow/custom\_functions.dart'; // Imports custom functions
import 'package:flutter/material.dart';
// Begin custom action code
// DO NOT REMOVE OR MODIFY THE CODE ABOVE!

import 'dart:io';
import 'package:pdf/pdf.dart';
import 'package:pdf/widgets.dart' as pw;
import 'package:printing/printing.dart';
import 'package:flutter/services.dart' show rootBundle;

import '../../auth/auth\_util.dart';
import '../../backend/firebase\_storage/storage.dart';

Future ractemplate(
 BuildContext context,
 String? name,
 String currentUserUid,
) async {
 // null safety
 name = name ?? '';

 final pdf = pw.Document();

 // add network image
 final netImage = await networkImage(
 'https://enmipwvdzymabvbjsfcn.supabase.co/storage/v1/object/public/pdftemplates/RaC.jpeg');

 // Add the image as the background of the first PDF page
 pdf.addPage(
 pw.Page(
 pageFormat: PdfPageFormat.letter,
 build: (context) => pw.FullPage(
 ignoreMargins: true,
 child: pw.Stack(
 children: [
 pw.Positioned(
 top: 0,
 left: 0,
 right: 0,
 bottom: 0,
 child: pw.Image(
 netImage,
 fit: pw.BoxFit.cover,
 ),
 ),
 pw.Positioned(
 top: 142,
 left: 354,
 child: pw.Text(
 name ?? '',
 style: const pw.TextStyle(fontSize: 9),
 ),
 ),
 ],
 ),
 ),
 ),
 );

 final pdfSaved = await pdf.save();

 // SAVE IT TO FIREBASE STORE

 // Get the current date and time
 final now = DateTime.now();

 // Format the date and time as a string
 final formattedDateTime =
 '${now.year}-${now.month.toString().padLeft(2, '0')}-${now.day.toString().padLeft(2, '0')}\_${now.hour.toString().padLeft(2, '0')}-${now.minute.toString().padLeft(2, '0')}-${now.second.toString().padLeft(2, '0')}';

 // Set the file name to the formatted date and time string
 final fileName = '$formattedDateTime.pdf';

 // Set the directory where you want to store the file (e.g., a folder named 'pdfs' in your storage)
 String directoryPath = '/users/' + currentUserUid + '/pdfs';

 // Combine the directory path and file name to create the full storage path
 final storagePath = '$directoryPath/$fileName';

 // Save the file to Firebase Storage
 final downloadUrl = await uploadData(storagePath, pdfSaved);

 // FFAppState().name = downloadUrl ?? '';

 // PRINT IT
 await Printing.layoutPdf(onLayout: (PdfPageFormat format) async => pdfSaved);
}
// Set your action name, define your arguments and return parameter,
// and then add the boilerplate code using the button on the right!
PDF를 생성하여 파이어베이스 스토리지에 저장하는 코드가 있습니다. 잘 작동하지만 이제이 pdf를 "문서"라는 파이어 스토어 컬렉션에도 저장하려고합니다. 이것이 제 문제입니다. 문서 보안 설정은 다음과 같습니다: 
일치 / 문서/{문서} {
 create 허용: if request.resource.data.user\_reference == /databases/$(데이터베이스)/문서/사용자/$(요청.auth.uid);
 허용 읽기: if resource.data.user\_reference == /databases/$(데이터베이스)/문서/사용자/$(요청.auth.uid);
 allow write: if resource.data.user\_reference == /databases/$(데이터베이스)/문서/사용자/$(요청.auth.uid);
 allow delete: if resource.data.user\_reference == /databases/$(데이터베이스)/문서/사용자/$(요청.auth.uid);
 }
앱을 안전하게 유지하려면 이러한 보안 규칙을 동일하게 유지하는 것이 매우 중요합니다. 다음 코드가 필드에 대한 관련 인수와 함께 '문서' 문서도 생성하도록 도와주실 수 있나요? 

사용자\_참조(문서는 사용자를 참조)
문서 이름 
pdf\_url(생성된 파이어베이스 PDF의 URL)
시간\_created 

지금까지 작성한 코드는 다음과 같습니다: 

// FlutterFlow 자동 가져오기
'/backend/backend.dart' 가져오기;
import '/flutter\_flow/flutter\_flow\_theme.dart';
import '/flutter\_flow/flutter\_flow\_util.dart';
import '/custom\_code/actions/index.dart'; // 다른 커스텀 액션을 가져옵니다.
import '/flutter\_flow/custom\_functions.dart'; // 커스텀 함수 가져오기
import 'package:flutter/material.dart';
// 커스텀 액션 코드 시작
// 위의 코드를 제거하거나 수정하지 마세요!

import 'dart:io';
import 'package:pdf/pdf.dart';
'package:pdf/widgets.dart'를 pw로 임포트합니다;
'package:printing/printing.dart' 임포트;
import 'package:flutter/services.dart' show rootBundle;

import '../../auth/auth\_util.dart';
'../../backend/firebase\_storage/storage.dart' 임포트;

향후 랙템플릿(
 빌드 컨텍스트 컨텍스트,
 String? name,
 String currentUserUid,
) async {
 // 널 안전
 name = 이름 ?? '';

 final pdf = pw.Document();

 // 네트워크 이미지 추가
 최종 netImage = await networkImage(
 'https://enmipwvdzymabvbjsfcn.supabase.co/storage/v1/object/public/pdftemplates/RaC.jpeg');

 // 첫 번째 PDF 페이지의 배경으로 이미지를 추가합니다.
 pdf.addPage(
 pw.Page(
 페이지포맷: PdfPageFormat.letter,
 build: (context) => pw.FullPage(
 무시여백: 참,
 child: pw.Stack(
 children: [
 pw.Positioned(
 top: 0,
 왼쪽: 0,
 오른쪽: 0,
 bottom: 0,
 child: pw.Image(
 netImage,
 fit: pw.BoxFit.cover,
 ),
 ),
 pw.Positioned(
 top: 142,
 왼쪽: 354,
 child: pw.Text(
 이름 ?? '',
 style: const pw.TextStyle(fontSize: 9),
 ),
 ),
 ],
 ),
 ),
 ),
 );

 최종 pdfSaved = await pdf.save();

 // 파이어베이스 저장소에 저장

 // 현재 날짜와 시간 가져오기
 final now = DateTime.now();

 // 날짜와 시간을 문자열로 포맷
 최종 형식화된 날짜 시간 =
 '${now.year}-${now.month.toString().padLeft(2, '0')}-${now.day.toString().padLeft(2, '0')}\_${now.hour. toString().padLeft(2, '0')}-${now.minute.toString().padLeft(2, '0')}-${now.second.toString().padLeft(2, '0')} ';

 // 파일 이름을 포맷된 날짜 및 시간 문자열로 설정합니다.
 최종 파일 이름 = '$formattedDateTime.pdf';

 // 파일을 저장할 디렉토리를 설정합니다(예: 저장소에 'pdfs'라는 이름의 폴더).
 문자열 디렉터리 경로 = '/사용자/' + currentUserUid + '/pdfs';

 // 디렉토리 경로와 파일 이름을 결합하여 전체 저장소 경로를 만듭니다.
 최종 저장소 경로 = '$ 디렉터리 경로/$ 파일 이름';

 // 파일을 파이어베이스 스토리지에 저장합니다.
 final downloadUrl = await uploadData(storagePath, pdfSaved);

 // FFAppState().name = downloadUrl ?? '';

 // 인쇄
 await Printing.layoutPdf(onLayout: (PdfPageFormat 형식) async => pdfSaved);
}
// 액션 이름을 설정하고 인자와 반환 매개변수를 정의합니다,
// 그리고 오른쪽 버튼을 사용하여 상용구 코드를 추가하세요!