考虑一下users.集合中的每个文档都有name和email作为字段.
{
"users": {
"uid1": {
"name": "Alex Saveau",
"email": "saveau.alexandre@gmail.com"
},
"uid2": { ... },
"uid3": { ... }
}
}
Run Code Online (Sandbox Code Playgroud)
现在考虑一下,通过这个有效的Cloud Firestore数据库结构,我启动了我的第一个版本的移动应用程序.然后,在某些时候,我意识到我想要包括另一个领域,如last_login.
在代码中,使用Java从Firestore DB读取所有用户文档将完成
FirebaseFirestore.getInstance().collection("users").get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (DocumentSnapshot document : task.getResult()) {
mUsers.add(document.toObject(User.class));
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
该类User现在包含的地方name,email和last_login.
由于新的Userfield(last_login)不包含在DB中存储的旧用户中,因此应用程序崩溃,因为新User类需要一个由该方法last_login返回的字段.nullget()
包含 …
我有一个由http请求触发的云功能,它打算执行以下操作:
因此,我需要等待(2)和(3)的循环然后执行批处理操作的东西.
下面是我目前的代码,当我在本地测试函数时,它是有用的.但是我不能将它部署到Firebase,因为它承诺了诸如"每次必须返回一个承诺"和"避免嵌套承诺"之类的错误.
exports.finishEvents = functions.https.onRequest((req, res) => {
const eventsRef = admin.firestore().collection('events');
var currentTime = new Date().getTime();
var currentTimeMinus1h = currentTime - 3600000;
console.log('----- finishEvents started -----')
const queryRef = eventsRef.where('finished', '==', false).where('date', '<=', new Date(currentTimeMinus1h)).get().then(function(querySnapshot){
if (querySnapshot.size > 0) {
querySnapshot.forEach(function(doc) {
var owner_id = doc.data().owner_id;
var event_id = doc.id;
console.log(owner_id, event_id);
var userEventOwnerGoingRef = admin.firestore().collection("user_events").doc(owner_id).collection('going').doc(event_id);
userEventOwnerGoingRef.get().then(doc2 => {
if (!doc2.exists) {
console.log('No such document!');
} else {
console.log('Document data:', doc2.data());
var goingIds = doc.data().going_ids; …Run Code Online (Sandbox Code Playgroud) node.js firebase google-cloud-functions google-cloud-firestore
我读到的有关 Firestore 的任何地方都说它比实时 Firebase 需要更少的非规范化。我猜这是因为它是一个文档数据库,您可以在其中指向特定文档并仅检索该数量的数据(?)。
但是,我想知道如何管理非规范化仍然有用的情况(例如,我们可以通过在其他文档上存储相同的值来将查询保存到包含完整信息数据的文档)。如果需要更新该值,是否有类似实时 Firebase 多路径更新(更新每个文档的值)来解决此问题?
我正在尝试使用Cloud Firestore的Firebase-UI库创建聊天。 这个 github仓库包含我正在使用的相关代码。问题与查询的顺序有关。
看到查询指定为:
Query sChatQuery = sChatCollection.orderBy("timestamp").limit(50);
Run Code Online (Sandbox Code Playgroud)
但是,我以正确的顺序(从旧到新)获得了最旧的50条消息,而不是最新的消息。另一方面,我可以使用以下查询:
Query sChatQuery = sChatCollection.orderBy("timestamp", Query.Direction.DESCENDING).limit(50);
Run Code Online (Sandbox Code Playgroud)
这会检索50条最新消息,但顺序错误(最新消息排在最前面,最旧消息排在最下面)。因此,我不知道该怎么做。
我可以在本地再次反转查询的结果,但是我无法弄清楚该怎么做(我已经走过了FirebaseUI库,但运气不佳)。
编辑
chat对于events集合中的每个事件,我都有其子集合:
events/event_doc/chat/chat_doc
我想得到如下消息:
Message 1
Message 2
Message 3
Message 4
...
Run Code Online (Sandbox Code Playgroud)
使用默认顺序,我会收到如上所示的消息,但是limit说明将快照从1减少到50,并且Message 51(最新的)快照未被检索。
double a, b = ...;
Run Code Online (Sandbox Code Playgroud)
是以下C#-statements
!(a > b)
Run Code Online (Sandbox Code Playgroud)
和
a <= b
Run Code Online (Sandbox Code Playgroud)
相当于还是有任何数字警告?
我有一组2D输入阵列m x n即A,B,C,我必须预测两个2D输出数组即d,e针对我有预期值.如果您愿意,可以将输入/输出视为灰色图像.
由于空间信息是相关的(这些实际上是2D物理域),我想使用卷积神经网络来预测d和e.我的设计(尚未测试)如下:
因为我有多个输入,我想我应该使用多个列(或分支)来为每个输入找到不同的功能(它们看起来相当不同).这些列中的每一列都遵循分段中使用的编码 - 解码架构(参见SegNet):Conv2D块涉及卷积+批量归一化+ ReLU层.Deconv2D涉及解卷积+批量标准化+ ReLU.
然后,我可以通过连接,平均或取最大值来合并每列的输出.为了获得m x n我看到的每个输出的原始形状,我可以使用1 x 1内核卷积来完成此操作.
我想预测单层的两个输出.从网络结构的角度来看还可以吗?最后,我的损失函数取决于输出本身与目标相比加上我想要强加的另一种关系.
我希望对此有一些专家意见,因为这是我的第一次CNN设计,我不确定它是否有意义,因为它现在和/或是否有更好的方法(或网络架构)来解决这个问题.
我最初在数据科学中发布了这个,但我没有得到太多反馈.我现在在这里发布它,因为这些主题有一个更大的社区,我将非常感谢接收网络架构之外的实施技巧.谢谢.
neural-network deep-learning conv-neural-network keras tensorflow
我正在使用Fortran MPI进行编码,因此需要获取程序的运行时间。因此,我尝试使用WTIME()函数,但得到了一些奇怪的结果。
部分代码如下所示:
program heat_transfer_1D_parallel
implicit none
include 'mpif.h'
integer myid,np,rc,ierror,status(MPI_STATUS_SIZE)
integer :: N,N_loc,i,k,e !e = number extra points (filled with 0s)
real :: time,tmax,start,finish,dt,dx,xmax,xmin,T_in1,T_in2,T_out1,T_out2,calc_T,t1,t2
real,allocatable,dimension(:) :: T,T_prev,T_loc,T_loc_prev
call MPI_INIT(ierror)
call MPI_COMM_SIZE(MPI_COMM_WORLD,np,ierror)
call MPI_COMM_RANK(MPI_COMM_WORLD,myid,ierror)
...
t1 = MPI_WTIME()
time = 0.
do while (time.le.tmax)
...
end do
...
call MPI_BARRIER(MPI_COMM_WORLD,ierror)
t2 = MPI_WTIME()
call MPI_FINALIZE(ierror)
if(myid.eq.0) then
write(*,"(8E15.7)") T(1:N-e)
write(*,*)t2
write(*,*)t1
end if
Run Code Online (Sandbox Code Playgroud)
t1和t2的输出值相同且非常大:1.4240656E + 09有什么想法吗?非常感谢。
我需要两个矩阵 X,Y 之间的皮尔逊相关系数。如果我运行代码corr=numpy.corrcoef(X,Y)我的输出是一个具有相关系数的矩阵。但是我需要一个值来表示两个矩阵之间的相关性。
我刚刚在 kennytm 的答案中看到,要拥有一个值,我应该写numpy.corrcoef(X,Y)[1,0]。
这个解决方案有效,但我不明白方括号内的数字意味着什么,也不明白为什么将它们相加后我会得到一个值。
我将 1 和 0 解释为系数的限制,但是矩阵内的所有系数会发生什么情况?对它们进行什么类型的计算以获得单个值?例如,如果我更改方括号内的数字[1,-1](相关性、反相关性),则更改的值corr会导致我很困惑应该在括号内使用哪些数字。
我一直在寻找不同的方法,但我仍然得到同样的错误:
我尝试过的:
float e = (float)Convert.ToDouble(e_textBox.Text);
bool valid = float.TryParse(e_textBox.Text.ToString(), out e);
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
Error 1 Cannot implicitly convert type 'float' to 'System.EventArgs'
Run Code Online (Sandbox Code Playgroud)
我做错了吗?谢谢.
firebase ×3
android ×2
c# ×2
java ×2
conditional ×1
correlation ×1
database ×1
double ×1
firebaseui ×1
fortran ×1
hpc ×1
keras ×1
mpi ×1
node.js ×1
numpy ×1
python-3.x ×1
tensorflow ×1
textbox ×1