Closed
Description
Hello! 👋
There is a bug in the logic to generate the "after" state of a (realtime) database change. The bug appears to be in the below lines of code, only a shallow copy/merge is performed but a deep one is needed.
firebase-functions-python/src/firebase_functions/db_fn.py
Lines 92 to 94 in 14676e5
As an example of a failure case, I had just changed allocation/change
from F
to G
in the following:
However I have a listener setup on the root object of the screenshot and the event.data
object that is generated by that change was:
Change(
before={'allocation': {'change': 'F', 'role': 'admin', 'third': 3}, 'details': <redacted>},
after={'allocation': {'change': 'G'}, 'details': <redacted>})
It should be:
Change(
before={'allocation': {'change': 'F', 'role': 'admin', 'third': 3}, 'details': <redacted>},
after={'allocation': {'change': 'G', 'role': 'admin', 'third': 3}, 'details': <redacted>})
Let me know if you need any more info.
Thanks!
Metadata
Metadata
Assignees
Labels
No labels