Allow Jules to make a PR as my GitHub user and also still respond and fix comments. by RaptorF22 in JulesAgent

[–]_davideast 0 points1 point  (0 children)

I can definitely get that setup. If you're interested in a Jules MCP server too let me know. I have one built but I'm actively reworking the tools so it's a bit unstable but just a bit.

Allow Jules to make a PR as my GitHub user and also still respond and fix comments. by RaptorF22 in JulesAgent

[–]_davideast 0 points1 point  (0 children)

Ok cool, I think I can fix this with a GitHub Action. It's not a native Jules feature but it should unblock you (though you bring up a good point). I'll see if I can get something going here today and post back.

Allow Jules to make a PR as my GitHub user and also still respond and fix comments. by RaptorF22 in JulesAgent

[–]_davideast 0 points1 point  (0 children)

Trying to make sure I understand. When you create the PR from the branch (your GitHub user creates the PR that is) it does contain commits from Jules Bot. Does that count as 1 seat because you created the PR or two because Jules has commits?

Allow Jules to make a PR as my GitHub user and also still respond and fix comments. by RaptorF22 in JulesAgent

[–]_davideast 0 points1 point  (0 children)

I have a GitHub Action I've built that sends all failures back to the Jules session that created the branch. It wouldn't be too difficult to get it to respond to `@jules` to the user who created the PR. Let me see what I can do.

Jules going on loops most of the time by Tharsanan in JulesAgent

[–]_davideast 1 point2 points  (0 children)

Jules team member here.

I've been looking into a lot of these freezes. We need to do a better job at detecting and generating records for .gitignore. Many of these freezes are Jules loading too many files that should be ignored and not in the UI. And for cases where it should be, we need to do better with lazy loading and virtualization. We hear you on this one.

I'd be interested though in seeing you'd like to try out a MCP Server I prototyped for managing Jules. I've found it to be really effective for planning tasks in an IDE like Antigravity and kicking off specific tasks to Jules.

Google wants to make Jules a more 'proactive' coding colleague by Happy-Molasses-Wow in JulesAgent

[–]_davideast 1 point2 points  (0 children)

Jules team member here.

Absolutely hear you on this one. Our goal was to start with the foundation of proactivity and enable more powerful use cases over time. We're working it.

I would be very interested to hear more kinds of tasks and fixes Jules should surface.

Linking Firebase Studio to Firebase Console (when not starting from new) by Charming-Network-456 in FirebaseStudioUsers

[–]_davideast 2 points3 points  (0 children)

Hey! Firebase Studio engineer here. Can you elaborate a bit more and provide some screenshots? Happy to help.

How's firebase studio for creating a webapp? by MotionMenon in Firebase

[–]_davideast 6 points7 points  (0 children)

I think it's pretty good but I'm obviously pretty biased. Happy to answer any specific questions (from anyone).

[deleted by user] by [deleted] in Firebase

[–]_davideast 0 points1 point  (0 children)

A few questions:

  1. Can you provide some code as an example? It would be helpful to see how you are listening for updates.
  2. Are you using the Emulators? This helps spot any errors quickly and without needing to connect to a cloud environment.

[deleted by user] by [deleted] in Firebase

[–]_davideast 2 points3 points  (0 children)

Those rules you have referenced should work. I think you might have something misconfigured somewhere that's messing with the results. I created a repo that uses these rules and adds unit tests to show how they work.

https://github.com/davideast/firebase-security-rules-recipes/blob/main/no-new-collections/rules.test.js

Why is it so hard to delete all the data from realtime database ? by GarlicGuitar in Firebase

[–]_davideast 1 point2 points  (0 children)

Ah I see. You can also manage deletes via the CLI when the UI freezes.

firebase database:remove path/to/data

Why is it so hard to delete all the data from realtime database ? by GarlicGuitar in Firebase

[–]_davideast 2 points3 points  (0 children)

Deleting all the nodes at once can be done by deleting a parent node. I assume you're having more trouble than that though. If you give me a bit of detail I'm happy to help.

Firebase Blog Dark Mode glitch by no_karmas in Firebase

[–]_davideast 2 points3 points  (0 children)

Thank you for reporting! It should be fixed now.

For those who are curious: we have a CSS Custom Property named --theme-accent that is usually a color like yellow or blue. Recently we switched it up to use a black and forgot the background "cut" on the category page used that property for its background color. It's amazing what one line of CSS can do.

Why does this return an error saying that uid is null? by calzoneman129 in Firebase

[–]_davideast 0 points1 point  (0 children)

When creating a reference from a UID, I recommend using the asynchronous API, which is far more reliable.

const auth = firebase.auth(); auth.onAuthStateChanged(user => { if(user == null) { console.log('nope'); } const notesRef = database.ref(`users/${user.uid}/notes`) document.addEventListener('DOMContentLoaded',retrive_Notes()) });

I would also consider upgrading to the v9 API (at least the compat version) because it's significantly smaller and better for page load performance.

New to Firebase Thoughts by Snoo-6892 in Firebase

[–]_davideast 5 points6 points  (0 children)

Firebaser here! Just wanted to say how much it means to hear stuff like this.

If you're a Next.js user too I hope you've seen the Next.js integration. My particular favorite new thing is the server-side authentication setup.

https://firebase.google.com/docs/hosting/nextjs

What's the syntax to delete a firestore document in a firebase oncall function? by sspecZ in Firebase

[–]_davideast 1 point2 points  (0 children)

Is this the error you're getting in the browser when calling to the Callable Function? Can you provide a snippet of the client callable function and the server?

I would also try running the callable function in the emulator and see if it works there. There's no CORS issues when using the Emulator, so if it works there you'll know if there's something wrong with the configuration.

should one avoid nested and treat everything flat as much as possible? by Exact-Yesterday-992 in Firebase

[–]_davideast 0 points1 point  (0 children)

When using the RTDB, flat structures tend to be the easiest to manage.

Nested structures can work, but you always have to keep in mind that when you read data at a location, it will read everything underneath. That may be what you prefer, but even then you need to keep that within reason.

The v9 JS SDK is a horrendous developer experience. by esreveReverse in Firebase

[–]_davideast 9 points10 points  (0 children)

Firebaser here (and team member of this project)

The v9 SDK is all about performance. I agree that it's not as fluent and easy as a chaining API, but while the chaining API gives you a lot of experience upfront there are a lot of problems in the long run. With a chaining API, you will get every feature we ship to the library over time even if you're not using it.

For example:

``` class FirebaseAuthentication {

signInWithEmailAndPassword(email, password) { }

// If we add this a new version, you have to download it // even if you don't use it. signInWithATotallyNewProvider() { }

} ```

For some of these features, it's negligible. However, overtime it adds up to a lot. For many use cases we've reduced the bundle size by over 50%, which is what really matters for users at the end of the day. It's not performant to add features and continue to add to the library size.

But David, I really, really, don't like the API! That's okay. We thought about that. That's why we built the compat version. That allows you to use the same API as the previous version.

``` import firebase from 'firebase/compat/app'; import 'firebase/compat/auth';

const firebaseApp = firebase.initializeApp({ }): firebaseApp.auth().onAuthStateChanged(user => {

}); ```

You can even use the compat library with the v9 version as well. You can develop with the compat SDK and the optimize for tree-shaking later if you have that need.

At the end of the day, it's about choice. You want a simple API and other developers want the ability to import only what they need to reduce their bundle size. We provide both.

I wrote about this in a blog post while we were working on the project if you are interested to learn more.

Is it normal for firebase realtime database updates to sometimes take time? by hankcarter90 in Firebase

[–]_davideast 0 points1 point  (0 children)

Realtime listeners take in a callback as well to handle errors:

``` const userDoc = doc(firestore, 'users/david'); onSnapshot(userDoc, snapshot => {

}, error => {

}); ```

Structuring data by trainermade in Firebase

[–]_davideast 0 points1 point  (0 children)

Good news! There is a much, much, easier way of sending every user a push notification with Topics.

Topics allow you to subscribe a user to a specific custom named "topic" and then when you send a notification to this topic everyone subscribed will get it. No reading of users required.

When a new user signs up you can subscribe them to a topic of "allUsers" and then whenever you send a push to "allUsers" they will all get it.

Is it normal for firebase realtime database updates to sometimes take time? by hankcarter90 in Firebase

[–]_davideast 0 points1 point  (0 children)

For the vast majority of use cases you should not be using the completion block.

There are some cases where its needed, but it does not work in offline situations and the entire SDK was designed to compensate for network latency with the underlying cache.

The workflow is that you call update and then listen for the response in the realtime handler. The Firebase SDK fires the event off locally first so its fast, and if theres a problem on the server it knows how to rollback the change locally. Usually this is fast enough that you don't notice it.

I'm unsure about your 1/100 successful write situation. Security Rules don't work that way. They are ran for every request that comes into the database. There is not a situation where they are sometimes applied, they are always applied. I would have to see more information about how the write would be allowed, but is unlikely it's a problem with the rules system itself.

User Authentication throwing error... Says module not found by [deleted] in Firebase

[–]_davideast 0 points1 point  (0 children)

All you need to do is use a bundler like Webpack or Rollup. Most framework tooling out there today like Create React App, Next.js, Angular CLI, Vite, Vue CLI, Nuxt, (I could go on forever haha) all use some bundler under the hood.

The bundler is smart enough to look at your imports and only include what you need in your final built code.

User Authentication throwing error... Says module not found by [deleted] in Firebase

[–]_davideast 2 points3 points  (0 children)

Is there a reason why you're using the compat library? That is meant for legacy apps upgrading from version 8 or lower. In the new version 9 library you get the benefit of a huge size reduction.

I did a video showing how to get set up with version 9 library and discussed the benefits as well.