gpt4 book ai didi

reactjs - Firebase React Native——如何获取和传输设备 ID/ token ?

转载 作者:行者123 更新时间:2023-12-03 13:19:29 30 4
gpt4 key购买 nike

第一次使用 Firebase 和 RN,试图弄清楚如何传输应用用户的设备 ID/ token 。

我现在正在使用类似这样的基本功能将信息传输到我的 Firebase 数据库(使用 firebase.database().ref())。

  updateDB = (timestamp_key, item_name, item_url) => {
firebase.database().ref(timestamp_key).set({
item_name: item_name,
item_url: item_url
})
}

对于如何获取一个人的设备 token 并传输它,我还没有找到一个简单直接的答案(所以我知道谁的操作是谁的后来)。

是否有(我认为应该是)相对简单的方法来做到这一点?谢谢!

附注除了初始化连接的配置之外,我还在脚本的更高层调用它——也许它就在我需要获取设备 token 的地方?

// Initialize Firebase
const firebaseConfig = {
apiKey: "blah",
authDomain: "blah",
databaseURL: "blah",
storageBucket: "blah",
messagingSenderId: "blah"
};

firebase.initializeApp(firebaseConfig);

最佳答案

所以我也将 Expo 与 React Native 结合使用。不过,我使用的是 Google 的 Cloud Firestore,而不是实时数据库。

我不确定我是否完全理解你的问题,但这就是我的做法:

const firebase = require('firebase');
import { Constants } from 'expo';

// Required for side-effects
require('firebase/firestore');
import { firebaseConfig } from './../keys';

class Fire {
constructor() {
this.init();
this.observeAuth();
}

init = () => firebase.initializeApp(firebaseConfig);

observeAuth = () => firebase.auth().onAuthStateChanged(this.onAuthStateChanged);

onAuthStateChanged = user => {
if (!user) {
try {
firebase.auth().signInAnonymously();
} catch ({ message }) {
console.warn(message);
}
} else {
this.saveUser();
}
};

saveUserInfo = () => {
const { uid } = this;
if (!uid) {
return;
}
// You can add any information here
const info = {
deviceId: Constants.deviceId,
};
const ref = this.db.collection('users').doc(uid);
const setWithMerge = ref.set({ uid, ...info }, { merge: true });
};

get db() {
return firebase.firestore();
}
get uid() {
return (firebase.auth().currentUser || {}).uid;
}
}

Fire.shared = new Fire();
export default Fire;

我从 Evan Bacon 的示例中获取了大部分代码 - https://github.com/EvanBacon/Expo-Pillar-Valley

关于reactjs - Firebase React Native——如何获取和传输设备 ID/ token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49244488/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com