4

I am following a tutorial and firebase.firestore.FieldValue.serverTimestamp() is used in the code to set timestamp prop as the server timestamp.

import firebase from "firebase"; 
const someFunction = () => { addDoc(collection(db, `rooms/${roomId}/messages`), { message: input, name: user.displayName, timestamp: firebase.firestore.FieldValue.serverTimestamp(), }).then((res) => getMessagesData()); }; 

But I get this error.

Module not found: Can't resolve 'firebase' in ... 

I suppose firebase had some kind of update that we don't import it with import firebase from "firebase"; anymore? What should I do to use the servertimestamp()?

4
  • "I am following a tutorial" Can you provide a link please, so that we can check what assumptions the tutorial makes? Commented Oct 25, 2021 at 1:41
  • For the actual error message, this has been coming up quite regularly recently since Firebase change the syntax of its JavaScript SDKs in v9. For example, see stackoverflow.com/questions/69044315/… Commented Oct 25, 2021 at 1:43
  • youtube.com/watch?v=pUxrDcITyjg at 3:07:42. Thanks. Commented Oct 25, 2021 at 1:44
  • Given when this tutorial came out, it must be using version 8 or earlier of the SDKJs, which had a different syntax. You will either have to import the same version of the SDK as the tutorial used, or upgrade all code and imports as shown in firebase.google.com/docs/web/modular-upgrade or in the link I gave earlier. Commented Oct 25, 2021 at 1:45

1 Answer 1

7

For an up to date sample, see the documentation on adding a server-side timestamp, which contains this snippet

import { updateDoc, serverTimestamp } from "firebase/firestore"; const docRef = doc(db, 'objects', 'some-id'); // Update the timestamp field with the value from the server const updateTimestamp = await updateDoc(docRef, { timestamp: serverTimestamp() }); 

The documentation has side-by-side examples for both the new v9 modular syntax and the older syntax that you're likely to find in many third-party tutorials, so you can look up how to translate the code to the newer syntax. The upgrade guide is a good way to get started with that too.

Sign up to request clarification or add additional context in comments.

4 Comments

This is the one I'm looking for! You are a lifesaver. Thanks!
Any way to get the "Timestamp" type, like we were able to in v8 via firebase.firestore.Timestamp?
thanks, just found it: import { Timestamp } from 'firebase/firestore';

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.