繁体   English   中英

如何在上传文件到Firebase存储之前获取自动生成的文档ID,并将该ID用作Web的存储参考?

[英]How to get auto-generated document ID before uploading file to Firebase storage, and use that ID as a storage reference for Web?

提示:本站为国内最大中英文翻译问答网站,提供中英文对照查看,鼠标放在中文字句上可显示英文原文

在使用 Firestore 自动生成的 ID 将一批写入提交到 Firestore 之前,我有一种方法可以将图像文件上传到 Firebase 存储。 在将文件上传到Firestore之前,开发代码等待文件上传获取下载URL。

但是,我想使用 Firestore 文档的自动生成的 ID 作为存储参考。

这是我的代码:

 try {
  // To replace "organization.uid" with the auto-generated id by Firestore "organization_doc_ref.id".
  const storageRef = ref(this.storage, `organizations/${organization.uid}`);
  await uploadBytes(storageRef, blob).then(() => {
    console.info('Uploaded a blob or file!');
  });
  organization.logo_url = await getDownloadURL(storageRef);

  const batch = writeBatch(this.firestore);
  const organization_doc_ref = doc(
    collection(this.firestore, 'organizations')
  );
  batch.set(organization_doc_ref, organization);
  const usernameDocRef = doc(
    this.firestore,
    'usernames',
    organization.username
  );
  batch.set(usernameDocRef, { uid: organization_doc_ref.id });

  await batch.commit();
  console.log('Organization successfully created...');
} catch (error) {
  return console.error('Error writing document: ', error);
}

您只需要重新排序您的说明,以便首先定义文档参考。 文档的 ID 将在本地生成,并且在您调用batch.commit()之前它不会与您的服务器交互。

try {
  const organization_doc_ref = doc(
    collection(this.firestore, 'organizations')
  );

  const storageRef = ref(this.storage, `organizations/${organization_doc_ref.id}`);
  await uploadBytes(storageRef, blob);
  console.info('Uploaded a blob or file!'); // avoid putting this in then() if using await
  organization.logo_url = await getDownloadURL(storageRef);

  const batch = writeBatch(this.firestore);
  batch.set(organization_doc_ref, organization);
  const usernameDocRef = doc(
    this.firestore,
    'usernames',
    organization.username
  );
  batch.set(usernameDocRef, { uid: organization_doc_ref.id }); // avoid using uid as it is often linked with the current Firebase Auth user's ID, use imgId, orgId or something similar

  await batch.commit();
  console.log('Organization successfully created...');
} catch (error) {
  return console.error('Error writing document: ', error);
}
使用 Firestore 自动生成的 ID 代替 Firebase 用户自动生成的 ID 是否安全?

[英]Is it safe to use a Firestore auto-generated ID in place of the Firebase user auto-generated ID?

Firebase 身份验证自动生成的 ID 比 Firestore [文档] 自动生成的 ID 长得多。 我问是因为我想在创建用户本身之前创建用户的文档,所以我依赖用户 ID 的 Firestore ID,并将其插入 Auth 中的创建用户 function,这工作正常。 我的问题是,这是一个好 ...

在 Firebase 中写入批处理时,如何添加具有自动生成 ID 的文档引用?

[英]How do I add a document reference with an auto generated ID when writing a batch in Firebase?

在 Firebase 中进行正常交易时,您可以使用.add function 添加具有自动生成 ID 的新文档; 但是,当使用 API 的 Web 版本 9 进行批量写入时,我找不到任何有关如何添加具有自动生成 ID 的新文档的文档。 目前我有以下代码不起作用: let ref = doc(db ...

springboot上传文件到firebase存储后如何获取下载url

[英]How to get the download url after uploading a file to firebase storage in springboot

我正在尝试将图像上传到 firebase 存储并将下载的 URL 保存在我的数据库中。 但是,与在 android 中执行上传时不同,我找不到在 springboot 中获取下载 Url 的方法。保存媒体 URL 不起作用,因为它没有访问令牌。 下面是我用来将图像上传到 firebase 的代码。 ...

获取自动生成的文档 ID 以创建文档或更新文档 Firestore / Firebase 中的数组的更好方法

[英]Better way to get document ID which was auto generated to create the doc or update an array inside the document Firestore / Firebase

我正在为每个用户创建一个文档来存储用户书签的 ID。 我正在使用 addDoc,因此创建的文档的 ID 由 firebase 生成。我想检查该文档是否存在以创建新文档或更新旧文档。 我需要一个文档参考来更新文档,我花了很长时间试图找出一种方法来获取自动生成的 ID。 我的代码有效,但感觉真的很糟糕 ...

无法获取生成的 firebase 文档的 ID

[英]Not able to get the id of the generated firebase document

我正在尝试获取生成的 firebase 文档的 ID,并且正在使用addDoc创建一个新文档。 我在单击按钮时生成一个新文档,该按钮调用initializeCodeEditor function。 任何人都请帮我解决这个问题! 按钮代码: 添加文档代码 firestoreReducer ...

在上传到Firebase存储之前,如何压缩Expo中的视频?

[英]How to compress videos in Expo before uploading to Firebase Storage?

我想知道如何压缩来自 Expo/React Native/Nodejs 的视频,以便在将它们上传到 Firebase 存储之前使它们更轻。 一个例子是 Whatsapp,一个电话录制的视频有超过 35mb 的大小,但是当你 select 将它发送给其他人时,它显示它有大约 5-6mb 的大小,压缩 ...

在 Flutter Web 上使用 firebase_storage 4.0.0 将图像上传到 Firebase 存储?

[英]Uploading an Image to Firebase Storage with firebase_storage 4.0.0 on Flutter Web?

看起来像 Firebase Storage 的最新版本,方法.put(...)已被弃用,取而代之的是 .putData(Uint8List) 和 .putFile(...),我还没有找到Flutter Web 的解决方案尚未。 我正在尝试的代码是这样的,但它不会返回任何内容或引发任何错误。 有什么 ...

获取firebase文档的ID

[英]Get the ID of firebase document

所以我有这个系列: 我在新页面中调用它,所以我无权访问 eventID。 我想弄清楚如何做到这一点 但它失败了。 我的逻辑是错误的还是这是不可能的? 在 firebase 中看起来是这样的: ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2023 STACKOOM.COM