REDFORD TOWNSHIP, Mich. >> It was the perfect place to welcome the endorsement of the firefighters union — a gleaming new firehouse in a blue-collar town just outside of Detroit in the key battleground state of Michigan.

But by the time Kamala Harris showed up in Redford Township on Friday, there was no endorsement waiting for her.

By a slim margin, the International Association of Firefighters declined to back any candidate, a reminder of the Democratic nominee’s struggle to lock down the same support from organized labor that President Joe Biden won four years ago. The Teamsters also balked at an endorsement last month.

Harris is still gaining more endorsements than she’s losing. National teachers unions, building trade unions, the AFL-CIO and the United Auto Workers backed the vice president shortly after Biden ended his run for a second term. And the leader of the Michigan firefighters union, Matthew Sahr, showed up for Harris in Redford Township — although not to bestow the endorsement.

“We could have chosen to stay away. But what kind of message would that send?” Sahr said.

A spokesman for the union declined Friday to comment beyond a previously released statement that said there would be no endorsement for Harris or her opponent, former President Donald Trump.

“The vice president is proud to have the support of organized labor, including firefighters across key battlegrounds like those who joined her in Michigan Friday,” said Harris campaign spokesman Brian Fallon. “She is the only candidate in this race who always stands with workers and has fought to protect overtime pay, worker pensions, and the right to organize.”

What unfolded nonetheless reflects the shifting loyalties in American politics as Harris vies with Trump for support among working-class voters who for years could be more solidly counted on to support Democrats.

Still, Harris didn’t mince words when she spoke at the firehouse, saying Trump “has been a union-buster his entire career” and would launch a “full-on attack” against organized labor.

Harris said Trump supports “right-to-work” laws that often make it more difficult to unionize, and said he had weakened federal employees’ unions. While he was president, Trump used a series of 2018 executive orders designed to reduce those unions’ powers to collectively bargain.

He has expressed support for right-to-work since his initial run for president in 2016 — while also making comments more generally supportive of labor rights when speaking to union audiences since then.

Harris also accused the former president of “making the same empty promises to the people of Michigan that he did before, hoping you will forget how he let you down.”

Her remarks followed U.S. dockworkers suspending their strike in hopes of reaching a new contract, sparing the country a damaging episode of labor unrest that could have rattled the economy. A tentative agreement that has been hailed by Harris was reached to raise salaries, although other issues still need to be resolved.

The vice president later addressed an evening rally in Flint, saying that, unlike what Trump says about the Biden administration’s rules on electric vehicles, “I will never tell you what kind of car you have to drive.”

“But here’s what I will do, I will invest in communities like Flint,” she said.

Harris also criticized Trump and his running mate, JD Vance, after Vance, while campaigning in Michigan on Wednesday, refused to commit to continue federal support going to a GM plant in Lansing, Michigan’s state capital.

“Donald Trump’s running mate suggested that if Trump wins, he might let the Grand River Assembly Plant in Lansing close down,” Harris said as the crowd booed.

She said that, by contrast, the Biden administration had fought to keep the plant open, adding, “Michigan, we, together, fought hard for those jobs and you deserve a president who won’t put them at risk.”