Now I was thinking of creating one user in the console (email/password authentication), and all devices authenticate using such email and password.
While this approach might work, this is not how you should handle authentication. Why? Simply because when you're using a single account, a single UID will be generated. That means that 20k users will share the same UID, which is bad because you cannot write proper security rules. You might think, that you can find another way to differentiate one user from another, like an IP, a device ID, and so on, but unfortunately all these IDs might change. So you'll end up having trouble.
My app has about 20 000 active users. Is it a problem with 20 000 sessions at the same time and also with so many requests to Firebase products with the same user?
It's not about a limitation as it's about managing users and security. Besides that, in terms of app design, each user should have their own account. As also @Tim mentioned in his comment, the best option that you have is use continue using Firebase Anonymous Authentication and enable automatic clean-up. In this way, you'll have a database containing only active users, since unused accounts will be deleted after 30 days. That being said, since each user has their own account, you can link that anonymous account with email and password, and you'll have distinct accounts for your users, and the most important part is that you'll be able to secure your app properly.
Edit:
Given that my app and DB are not based on a user profile, such rules like auth.uid==$user.uid
or $user.role=='admin'
are useless.
Understanding that security isn't a concern, then you can ignore that and use a single account.
I just want to know and be sure that the approach of using a single user for all my devices will work and won't occur limit problems.
In most cases, folks are trying to limit access to the app on multiple devices, but if your application requires a single account, then you can go ahead with that. Regarding limitations, there are no limitations when it comes to how many users can access a single account, as there are no limitations when it comes to how many users can authenticate into your app.
Edit2:
Yes, the following limitation:
Operations per service account: 500 requests/second
Refers to the maximum number of operations that can be performed in a single second. But, that's a large number in my opinion, given the fact that a single user needs to authenticate only once since the auth state persists across application restarts. So the need for a user to sign in or out it's not so often. Besides that, I don't see any reason why a user should sign out.
So even if you have 20k users, it's hard to believe that more than 500 will try to perform an operation in exact same second. Even if that happens, you can catch the error and display a message to the user in which you can ask to try again in 5 seconds, for example.
Once all those 20k users are authenticated, I cannot see how you can reach that limit. I think that even Facebook doesn't have more than 500 new users that sign in to the application in a single second. Because if so, in a single minute they would have 30k new visitors, and in an hour would have 1.8 million new users. I let you do the math for a day. So it's quite impossible.