🐛 [firestore-send-email] delete email documents on TTL expire
[READ] Step 1: Are you in the right place?
Issues filed here should be about bugs for a specific extension in this repository. If you have a general question, need help debugging, or fall into some other category use one of these other channels:
- For general technical questions, post a question on StackOverflow with the firebase tag.
- For general Firebase discussion, use the firebase-talk google group.
- To file a bug against the Firebase Extensions platform, or for an issue affecting multiple extensions, please reach out to Firebase support directly.
[REQUIRED] Step 2: Describe your configuration
- Extension name: firestore-send-email
- Extension version: 0.1.27
- Configuration values (redact info where appropriate):
- Cloud Functions location: us-central1
- SMTP connection URI: redacted
- SMTP password (Optional): redacted
- Email documents collection: mail
- Default FROM address: redacted
- Firestore TTL type: day
- Firestore TTL value: 5
- remaining optional parameters are not set
[REQUIRED] Step 3: Describe the problem
Steps to reproduce:
- Configure the plugin as described in the documentation, also set TTL type to day and TTL value to 5.
- Send some emails with the plugin.
- Note, that the emails are sent and received by the recipients as expected.
- Wait until the specified TTL is elapsed (and some weeks more, just to be sure)
Expected result
The documents in the configured collection are expected to be deleted automatically.
Actual result
The documents are never deleted.
Please note, that it is not even possible to manually set up a TTL policy, because expireAt field is at 2nd level in the document created by the plugin, however, only 1st level fields can be configure as timestamp field when creating a TTL policy (see https://console.cloud.google.com/firestore/databases/-default-/ttl)
Example document:
I was wondering if it's possible to create a TTL Policy for a 2nd level field by specifying the timestamp field with dot notation, such as "delivery.expireAt". However, if setting the TTL manually is required, I believe it would be beneficial to include this information in the documentation. Unfortunately, I could not find any related instructions. Could you please clarify this?
its not much help but this works for us. using delivery.expireAt. extension 0.1.30
Indeed, a TTL policy with delivery.expireAt is working.
The documentation might be a bit more descriptive in this subject, it wasn't even clear for me that I have to create a TTL policy because it is not done automagically.
Documents updated explaining how to add the TTL policy properly. Apologies for the lack of information before. New documents will be merged shortly.