Tag: google

Firebase and Low-Effort User Management

I’ve found myself with some additional time to be creative during the great COVID-19 and lockdown/quarantine days. That’s why there’s more blog posts recently! Actually, I wanted to take the time to experiment with some unfamiliar technologies and build something. For a project, I wanted to leverage authentication but I’m well aware that user management can become a really complex undertaking. I had heard about Firebase from Google and wanted to give it a shot.

For the purposes of this discussion, Firebase would allow me to create something like an OAuth proxy to the system I wanted to build, and by doing so, would end up managing all of the users for me. What I needed to do with Firebase to get that setup was actually quite straight forward.

First, you start off in typical fashion registering for Firebase. From there, you’re asked about adding a new project, which looks like the following:

Create Firebase project

You’re then required to add apps to your project within Firebase. But here’s where your journey might differ from mine. I’m working in Xamarin, so I wanted to be able to add an iOS app and an Android app. The reason you need to do this is so that you can get the proper service information for your app so that it can communicate with Firebase. Google does a great job with walking you through the process, and in the end you’re required to add a service configuration file to each of your projects.

The next part was probably the most time consuming, and that was integrating some sort of OAuth for a platform into my mobile app. There’s tons of documentation about that on the Internet, so I’m not getting into that here. There’s different steps to take depending on what platform (i.e. Google, Facebook, Twitter, etc…) you want to authenticate with and whether you’re working on iOS, Android, web, or something else. Getting this all up and running required the most time on this step but it wasn’t really anything to do with Firebase… it was picking + supporting OAuth for the platforms of my choosing.

I knew which platforms I wanted to work with, but Firebase actually has a set that it supports (including email + password)! You’ll want to check that out because you need to enable the platforms you want to support in the console:

Firebase OAuth Providers

Now you can find the Firebase SDK for the platform you’re working with! Once your application/service is able to OAuth with a platform that you support, ensure it’s enabled in the console. From there you can use a method from the SDK that allows you to sign into Firebase with Oauth. This is where you’d provide the access token from the platform of your choice after having logged into that platform successfully.

The result is that Firebase actually builds a user entry for you with data related back to the OAuth platform. These are based on the providers that you used to authenticate originally. By doing this, you can use these external authentication providers and with minimal effort connect them to your Firebase project! You can get all of the authentication options you’d like AND free user management as a result.

This is high-level, but I will follow up with how we’re leveraging Firebase with the components we’re putting together in our system. Spoiler: ASP.NET controller routes can get protected by Firebase authentication with almost no effort!


Experimenting with Paid for Ads for Web Traffic

Experimenting with Paid for Ads for Web Traffic

Why Did I Consider Paid for Ads?

I wrote a post about focusing on some of my strengths in order to minimize risk in new areas, and part of that meant focusing on increasing brand awareness for DevLeader as a proving ground. The idea of driving more web traffic to my blog via ads came up because I was interested in experimenting with Instagram ads for my show car branding, but not knowing anything about paid for ads made taking that first step feel pretty risky.

What should I expect for paying for ads? What will $1 get me? What will $10 get me? I have no idea where to start with this kind of thing, so I felt it was important to use my more solid brand, DevLeader, as the basis for this experiment. If I can watch what happens with traffic to this blog by playing with ads, then I can apply that learning to my vehicle brand.

Free Credit For Ads!

One thing that I found when playing with some of my SEO tools is that many paid-for ad services will actually give you a coupon or some sort of matching credit for using their ad service. What does that mean? Well, like almost everything in life… if it sounds too good to be true, it probably is. The coupons or credits don’t mean that you get to pay nothing for your ads, but it’s still a cool opportunity. Generally, these services will say “If you spend X dollars with our ad service, we’ll give you a credit to worth Y dollars that you can use for your NEXT set of ads”.

Make sense? They want to cover your NEXT purchase you make with them to get you on board with them. So it’s not a free experiment to try this out, but it means that if you’re going to drop $100 into it, that $100 might technically stretch out to be valued at $200 if you were to get a $100 coupon from one of these services.

Just something to think about! If you’re serious about looking into advertising and you’re willing to make the initial investment, it seems like a great opportunity.

Google AdWords

The obvious choice for me to start with was Google AdWords because all of my accounts are linked up in someway through Google at various points, and I use a lot of their tooling. The setup was very simple, but you’ll need to remember to have your credit card on hand. Like I said, nothing is free. You can stop your ads at any time though, so you don’t need to be paranoid about accidentally spending $500 on an ad. I mean, I think it would be difficult to have that happen and I’m a total newbie.

Google AdWords guides you through setting up your first ads pretty well, especially for someone that’s never done this before. When it comes time to pick keywords and bidding strategies… I sort of just guessed. It’s an experiment, right? They offer tools to measure your metrics, so you can try changing keywords to see how the effectiveness changes. I started by creating a search campaign that would maximize clicks. I set my spending limit to $3/day. Picked some popular keywords for my blog, like programming, C#, and Unity. And… now I wait to see what happens! I hope to follow up on all of this experimentation to share my learnings in this area so that anyone else on the fence can learn from my experiences.

For free credits, Google AdWords claims to match up to $150 of your first months spending, so I think I’m going to try shooting for that. I’ll start off at spending $3/day and see if I can experiment with a few different options for ads. By the end of the first month, I hope to use all $150 of my initial investment so that I’ll have $150 from Google to play with in the upcoming months!

Bing Ads

Bing Ads was a cool option to explore after setting up Google AdWords, so I suggest if you’re going to try both of these that you do Google AdWords first. Once I created my account for Bing, I was actually able to import my Google AdWords campaign I created extremely easily. I didn’t even have to think about it. I plan to measure the return on investment of both of these with the same campaign setup to see which one is more effective.

The great thing about Bing Ads? Once you spend $25 (USD), they’ll give you $100 (USD) for your next purchases. Just a $25 experiment that if it works well, I can get 3x the investment back to play with! Very cool!


Git + Google Code + Windows

Just a quick one here because I’m hoping it will benefit a person or two. I’d like to start by stating I’ve always been a Windows user. I don’t like using Macs and I don’t like using *nix. Why? It’s just my preference, and I’ll leave it at that (I don’t have an emotional attachment to Microsoft or anything, I’m just well versed with Windows). Anyway… I was recently trying to get a Google Code page setup for one of the postings I wrote. However, being a Windows user made things pretty difficult. Here’s how I solved my problem:

  • Install GitExtensions (I already had this installed, because I use this for everything)
  • Created my google code account and created my project.
  • Changed my google code account permissions to allow my GMail credentials when pushing. You can do that here.
  • Navigate to this page (well, the equivalent for your project), which gives you a nice address for cloning:
    git clone https://your-user-name@code.google.com/p/your-project-name/
  • Use git extensions to clone this repo somewhere. If you just made your project, it’ll be empty! Makes sense.
  • Add all the stuff you need to, and then make your first commit.
  • Push up your code! But…
  • —-Here is where it all broke down—-
Okay, so I can’t push up code because my remote isn’t setup properly now. Something to the tune of:

“C:Program Files (x86)Gitbingit.exe” push –recurse-submodules=check –progress “origin” master:master
error: The requested URL returned error: 500 while accessing https://n.b.cosentino@code.google.com/p/event-handler-example/info/refs?service=git-receive-pack
fatal: HTTP request failed
Done

But why?! I’m pushing to origin! Well, that’s exactly why. ‘origin’ in my case refers to the repository I have on a different server–NOT where google code is! What did I do next then? Googled like mad until I got to here. Thank you StackOverflow, yet again.
Next steps:
  • From git extensions, launch the bash window. And yes, believe me… I get super nervous as soon as I have to use the console I’m unfamiliar with.
  • Next, I used these two beautiful commands:
$ git remote add googlecode https://project.googlecode.com/git
$ git push googlecode master:master
  • I had to enter my credentials next… But that’s easy.
  • And the rest is history! The two commands simply added a “remote” called googlecode and then pushed my branch up to the googlecode remote.

It was actually an extremely simple solution, I just wasn’t paying attention to what exactly was wrong. I figured by cloning the repo initially it knew where the correct remote was. Unfortunately, that’s not the case.


  • Subscribe to Blog via Email

    Enter your email address to subscribe to this blog and receive notifications of new posts by email.

  • Nick Cosentino

    Nick Cosentino

    I have nearly a decade of professional hands on software engineering experience in parallel to leading multiple engineering teams to great results. I'm into bodybuilding, modified cards, and blogging about leadership/development topics over at http://www.devleader.ca.

    Verified Services

    View Full Profile →

  • Copyright © 1996-2010 Dev Leader. All rights reserved.
    Jarrah theme by Templates Next | Powered by WordPress